【发布时间】:2018-04-16 00:20:09
【问题描述】:
我目前正在做一个 VBA 宏,它将发送一封具有以下条件的 Outlook 电子邮件:
A.收件人列在 Sheet1 的 D 列中,我想要的只是在 Outlook 的 TO 字段中连接每个发件人。但是,这些接收者是动态的,并且在数量上可能不同。案例可能会导致在这些列中添加或减少电子邮件地址。
B.我需要将 Sheet2 的任何内容粘贴到 Outlook 的 BODY 字段中。 C. 我需要生成一封带有签名的电子邮件。
到目前为止,我有这段代码,但它不起作用:
Option Explicit
Sub SendEmail()
Dim OutlookApplication As Outlook.Application
Dim OutlookMailItem As Outlook.MailItem
Dim outlookInspector As Outlook.Inspector
Dim wdDoc As Word.Document
Dim Recipient As Range
Dim CC As Range
Application.ScreenUpdating = False
Set OutlookApplication = New Outlook.Application
Set OutlookMailItem = OutlookApplication.CreateItem(0)
'On Error GoTo cleanup
Workbooks("ConfigFile.xlsm").Sheets("Sheet1").Activate
Range("D2").Select
Set Recipient = Range(ActiveCell, ActiveCell.End(xlDown))
Range("E2").Select
Set CC = Range(ActiveCell, ActiveCell.End(xlDown))
With OutlookMailItem
.Display
.To = Recipient
.CC = CC
.subject = ThisWorkbook.Sheets("Sheet1").Range("F2").Value
.Body = ThisWorkbook.Sheets("Sheet1").Range("G2").Value
Set outlookInspector = .GetInspector
Set wdDoc = outlookInspector.WordEditor
wdDoc.Range.InsertBreak
Sheet2.Activate
Range("A:A").CurrentRegion.Copy
wdDoc.Range.Paste
End With
'cleanup:
'Set OutlookApplication = Nothing
'Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
什么不起作用?它会抛出错误吗?在哪一行?
-
我认为 With OutlookMailItem 中的所有内容都不起作用。我不知道修复错误的正确代码组合是什么。它说“运行时错误 13”。
-
发生错误时哪一行被高亮显示?
-
.to = 收件人的字段