这是本教程的链接 https://wellsr.com/vba/2018/excel/excel-vba-send-email-with-attachment/
Sub AttachMultipleFilesToEmail()
Dim outlookApp As Outlook.Application
Dim myMail As Outlook.MailItem
Set outlookApp = New Outlook.Application
Set myMail = outlookApp.CreateItem(olMailItem)
For i = 2 To 5
source_file = "C:\Work Files\" & Cells(i, 3)
myMail.Attachments.Add source_file
Next i
End Sub
这是我正在尝试做的大事。 Got this image from https://wellsr.com/vba/2018/excel/excel-vba-send-email-with-attachment/,但是文件和目录存在并且正确。可能是什么问题?
答案 0 :(得分:0)
猜测,我想您没有对Outlook dll的引用。
尝试在VBA编辑器中单击“工具”菜单,然后选择“引用...”。
然后向下滚动列表,直到找到Microsoft Outlook XX Object Library
,然后选择它。 XX只是版本号。
对于以后的问题,请始终告诉我们错误发生的代码行以及确切的错误消息。否则,我们只是在猜测。
关于您的修订问题:
我运行了您的代码,它运行正常。但是,我确实确保将带有文件名的工作表作为活动工作表,否则您将得到错误。
我建议您使用数据明确引用工作表,而不是仅使用Cells(i,3)
,因为这是使用活动工作表的捷径。
这是一种实现方法:
Sub AttachMultipleFilesToEmail()
Dim outlookApp As Outlook.Application
Dim myMail As Outlook.MailItem
Dim sheet As Worksheet 'declare an object to point to the sheet with the data
Set outlookApp = New Outlook.Application
Set myMail = outlookApp.CreateItem(olMailItem)
Set sheet = Worksheets("Sheet1") 'set the object to the correct sheet
For i = 1 To 2
source_file = "C:\Work Files\" & sheet.Cells(i, 3) 'use the sheet object to ensure the correct cells are used.
myMail.Attachments.Add source_file
Next i
End Sub
答案 1 :(得分:0)