Ich benutze unten Code, um mehrere E-Mails über Outlook zu senden, dieser Code funktioniert gut, wenn ich Excel 2007 und Outlook 2007 jedoch verwende, wenn ich versuchte, denselben auszuführen Code in Excel 2013 und Outlook 2013 es wirft einen Fehler "Runtime error 424: nicht Objekt definiert" im folgenden Code:Laufzeitfehler 424: Objekt nicht definiert "- Beim Senden von E-Mails mit Outlook 2013
Set Doc = olMail.GetInspector.WordEditor
Kann jemand bitte unter Codierung überprüfen und lassen sie mich wissen, was ich tun muss geändert werden, wenn ich dasselbe Makro in Version 2013 verwenden möchte?
Sub Msmail()
Dim otlApp As Object
Dim olMail As Object
Set otlApp = CreateObject("Outlook.Application")
Set olMail = otlApp.CreateItem(olMailItem)
Set mainWB = ActiveWorkbook
Worksheets("Mail").Select
ActiveSheet.Calculate
Total_Site = Range("Total_Site")
For Site_Count = 1 To Total_Site
Application.StatusBar = False
ActiveSheet.Calculate
Range("Site_Count") = Site_Count
ActiveSheet.Calculate
If Range("Send_Email") = "Y" Then
Set mainWB = ActiveWorkbook
Set olMail = otlApp.CreateItem(olMailItem)
Set Doc = olMail.GetInspector.WordEditor '<~ ERROR 424 HERE
SendID = mainWB.Sheets("Mail").Range("To_List").Value
CCID = mainWB.Sheets("Mail").Range("Cc_List").Value
Subject = mainWB.Sheets("Mail").Range("Subject_Line").Value
Body = mainWB.Sheets("Summary").Range("Mail_Body").Value
AttachFile = mainWB.Sheets("Mail").Range("StrPath").Value
StrPath = ActiveSheet.Range("StrPath").Value
With olMail
.To = SendID
If CCID <> 0 Then
.CC = CCID
End If
.Subject = Subject
mainWB.Sheets("Summary").Range("Mail_Body").Copy
Set WrdRng = Doc.Range
.Display
WrdRng.Paste
'StrPath = Range("StrPath").Value
StrFile = Range("StrFile").Value & "*.*"
StrFile = Range("StrFile").Value
.Attachments.Add StrPath & "\" & StrFile
.Send
End With
End If
Next Site_Count
End Sub
das heißt Sie (oder * Zukunft Sie *) genießen könnte wissen, dass meine Open-Source-Projekt [Rubber] (http://rubberduckvba.com) einen Port des ausgezeichneten * Smart-Indenter beinhaltet * Add- Das funktioniert in 64-Bit-Hosts. –
Ist 'Option Explicit' angegeben? Scheint, dass Ihr Code nicht einmal mit dieser Option kompiliert würde, da viele Variablen verwendet, aber nirgendwo deklariert werden. Gibt es einen Grund, die Outlook-Typbibliothek zu spät zu binden, anstatt einen Verweis darauf in Ihrem Projekt hinzuzufügen und Typsicherheit, IntelliSense und Auto-Complete-Typ zu kompilieren? IntelliSense würde Ihnen wahrscheinlich dabei helfen, was die verfügbaren Mitglieder sind und wie sie heißen. FWIW Sie erstellen zwei "olMail" -Objekte - eines außerhalb der Schleife, das ignoriert wird, und eines innerhalb der Schleife. –
Ich brauche nur olmail Objekte innerhalb der Schleife ich kann olmail Objekt außerhalb der Schleife entfernen. Aber ich habe Probleme beim Ausführen von "Set Doc = olMail.GetInspector.WordEditor" muss ich ein Objekt oder eine Variable dafür definieren. –