为什么我的图像不embeddedHTML电子邮件?

我试图运行VBA中的代码,将发送HTML电子邮件,并试图在电子邮件中embedded图像。 我有以下代码这样做:

Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub 

但是会发生什么是图像被附加,但有一个红色的十字框在图像应该在哪里,如下图所示:

在这里输入图像说明

我已经尝试了以下对代码的适应:

 Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:MyCid' align=baseline border=0>&nbsp;</BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub 

但是,这给了我错误“编译错误:预期=” oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid")所以我试图取出, "MyCid") ,并将电子邮件中的代码更改为oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>" ,看起来像这样:

 Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub 

但是现在我得到错误Compile error: argument not optional ,它指向行oAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F").SetProperty部分。

请注意,我正在使用Windows 7,Microsoft Excel 2010和Microsoft Outlook 2010。

好吧,谷歌search错误消息“编译错误:预期=”之后,更改行:

 oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") 

至:

 Call oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") 

工作。

我发现这从http://answers.microsoft.com/en-us/office/forum/office_2010-access/vba-compile-error-expect-in-sub-call/a47c752f-3034-41a6-a77c-b3ddaa34b24c ?AUTH = 1

感谢您的评论和答复。

在调用子试图摆脱()时,VBA不喜欢括号:oAttach.PropertyAccessor.SetProperty“ http://schemas.microsoft.com/mapi/proptag/0x3712001F ”,“MyCid”