Ich habe ein Makro, das ich erstellt habe, um E-Mails an Kunden zu senden, mit personalisierten Informationen für jeden Kunden. Es hat gut funktioniert, aber es wurde gerade darauf aufmerksam gemacht, dass das Makro nach dem 67. Entwurf, der in Outlook beim Ausführen des Makros ausgefüllt wird, keine E-Mails erstellt. Ich habe versucht zu recherchieren und habe keine Einschränkungsrestriktion gefunden, wie viele E-Mail-Entwürfe Sie in Outlook öffnen können. Ich habe meinen Code unten veröffentlicht, für den Fall, dass jemand sehen kann, ob ich versehentlich ein Limit eingerichtet habe.Excel Email Makro Größenbeschränkungen
So funktioniert das Makro: Mitarbeiter haben eine Liste mit ungefähr 500 Konten, die sie jeden Monat per E-Mail kontaktieren müssen, um ihren Vertrag mit uns zu verlängern. Alle Informationen befinden sich in einer Excel-Datei, und dieses Makro ruft die E-Mail-Adresse, den Kundennamen, den Kundenkontakt, das Erneuerungsdatum usw. des Kunden ab und verwendet diese Informationen in jeder E-Mail für eine personalisierte E-Mail. Sobald der Mitarbeiter die Schaltfläche zum Ausführen des Makros betätigt, wird für jedes Konto in der Liste eine E-Mail erstellt, die in Outlook ausgefüllt wird. Ich habe die E-Mails in Outlook ausgefüllt, anstatt automatisch zu senden, falls der Mitarbeiter je nach Client weitere Informationen bearbeiten oder einer E-Mail hinzufügen möchte. In den meisten Fällen senden sie die E-Mail wie sie sind, aber die Mitarbeiter bearbeiten ein paar E-Mails. Obwohl es so entmutigend erscheint, so viele Entwürfe in Outlook auf einmal zu erstellen, ist es für die Mitarbeiter viel schneller, E-Mails auf diese Weise zu versenden, anstatt sie einzeln einzugeben.
Also jede Beratung oder Einsicht, warum ich nicht mehr als 67 E-Mails gleichzeitig senden kann, wenn das Makro die letzte Reihe von Informationen durchlaufen sollte, lassen Sie es mich wissen. Wenn nicht, muss ich den Mitarbeitern nur sagen, dass sie das Makro nur in Gruppen von 60 verwenden.
Sub SendEMail()
Dim Email As String
Dim Subj As String
Dim Msg As String
Dim URL As String
Dim r As Integer
Dim x As Double
Dim OApp As Object
Dim OMail As Variant
Dim Signature As String
Dim strbody As String
'for formatting reasons
strbody = "<html><body>"
'for looping
With Sheets("List").Select
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
End With
For r = 2 To lastrow
Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)
' Get the email address
Sheets("List").Select
Email = Cells(r, "K")
' Message subject
Sheets("List").Select
Subj = "Renewal for " & Cells(r, "B").Text & " Client # " & Cells(r, "A").Text & " Effective " & Cells(r, "D").Text
' Message body
Sheets("List").Select
strbody = "<p>Dear " & Cells(r, "J").Text & ", </p>" & _
"I am contacting you regarding the upcoming renewal for " & Cells(r, "B").Text & ", account number " & Cells(r, "A").Text & ", which is effective " & Cells(r, "D").Text & ". We have reviewed the account and determined that we have the information we need on file in order to offer renewal terms. & _
"Should you have any questions or if we can be of futher assistance, please don't hesitate to contact " & Cells(r, "O").Text & " at " & Cells(r, "M").Text & " or " & Cells(r, "N").Text & _
" or respond to this email. If you are aware of changes to the contact on this account, please let us know, so we can be sure to get future correspondence to the proper person.<br><br>" & _
"As always, we would like to thank you for your business.<br><br>" & _
"Sincerely,"
On Error Resume Next
Sheets("List").Select
With OMail
.Display
.To = Email
.Subject = Subj
.HTMLBody = strbody & vbNewLine & .HTMLBody
End With
Next r
On Error GoTo 0
Set OMail = Nothing
Set OApp = Nothing
End Sub
Was passiert nach 67 E-Mails.Stoppt der Code ohne Fehler oder gibt es einen Fehler in einer bestimmten Zeile in Ihrem Code? Bitte erläutern Sie es genauer. –
Es scheint einen Compilerfehler zu geben - Syntaxfehler im Absatz 'strbody ="
Sehr geehrte "& Cells (r," J "). Text &",
"& _ .....'. Bitte überprüfen Sie den Code aus Ihrem Master-Code. – skkakkarEntfernen Sie die 'On Error Resume Next'-Anweisungen und lassen Sie es fehlschlagen, damit Sie sehen können, was und wo es fehlschlägt? – Dave