我正在通过VBA Outlook.Application Reference从Excel创建电子邮件 . 每封电子邮件都填充了我的Excel工作表中的数据,然后放入To / CC / BCC / Subject / Body字段 .
现在,在Office 2010中运行此代码时,它可以顺利运行,但在Office 2013中包含To / CC / BCC /等的变量 . 显示时,数据不会显示在实际的电子邮件中 .
Office 2013中此参考更改了吗?
Sub MailSheet()
Dim OutApp As Object
Dim outMail As Object
Dim rng As Range
' set required variables
Set Sourcewb = ActiveWorkbook
Set Property = ActiveWorkbook.Sheets("Settings").Range("B4")
Set Holidex = ActiveWorkbook.Sheets("Settings").Range("B5")
Set SendTo = ActiveWorkbook.Sheets("Settings").Range("B29")
Set SendCC = ActiveWorkbook.Sheets("Settings").Range("B30")
Set rng = Sheets("Mail").Range("A1:F80")
' set email variables
Set OutApp = CreateObject("Outlook.Application")
Set outMail = OutApp.CreateItem(0)
' some code
' get ready to mail
With outMail
.To = SendTo
.ReplyRecipients.Add ""
.CC = SendCC
.BCC = ""
.Subject = Holidex & " - Daily Email"
.HTMLBody = RangetoHTML(rng)
' display email before sending
.Display '.Send or use .Display
End With
' some code
' Clean up
Set outMail = Nothing
Set OutApp = Nothing
end Sub
2 回答
而不是创建Outlook对象,尝试引用Outlook库(工具 - >引用,然后选择
Microsoft Outlook xx.x Object Library
) . 然后,您可以参考如下:您可以在sub中添加此代码,也可以使用参数从Sub调用此Sub
不确定我可以直接帮助你,但我确实有一些我在网上找到的代码,我知道这个代码适用于Outlook 2016,会在这里分享它以防万一:
我设置的一些变量是多余的,因为我稍微编辑了代码以保持隐私,但如果有帮助请告诉我!
如果您想使用CC而不是密件抄送,那么只需将代码更改为: