我正在尝试将共享驱动器中的PDF附加到Excel中VBA代码生成的许多Outlook电子邮件中。
一张工作表包含将创建电子邮件的所有电子邮件地址。
同一工作簿中的另一个工作表具有主题行、电子邮件正文文本和 PDF 位置等输入,可以根据群发电子邮件的内容进行更改。
虽然使电子邮件的主题和 htmlbody 的代码有效,但附件代码不起作用。
将PDF地址复制到带有电子邮件数据行的活动工作表中的单元格中,我可以附加PDF。
当我将其视为"输入"工作表上的输入时,就会出现问题。
Sub Email_New_Patent_Case()
Dim i As Integer
Dim AttorneyCount As Long
'Set the end of the range equal to the last row of attorney data in the sheet
AttorneyCount = WorksheetFunction.CountA(Range("B2:B10"))
For i = 1 To AttorneyCount
If ActiveSheet.Cells(i + 1, 16) > 0 Then
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(olMailItem)
With objEmail
.To = ActiveSheet.Cells(i + 1, 10).Value
.CC = ""
'Make sure this cell corresponds with the Subject Line
.Subject = ActiveWorkbook.Worksheets("Inputs").Range("D3")
'Make sure nickname has nickname or first name as value
.HTMLBody = ActiveSheet.Cells(i + 1, 4).Value & ",<br><br>"
'Make sure this cell corresponds with the Body
.HTMLBody = .HTMLBody & ActiveWorkbook.Worksheets("Inputs").Range("D4")
'Make sure this cell corresponds with
' the desired attachment location on the shared drive
.Attachments.Add ActiveWorkbook.Worksheets("Inputs").Range("D5")
.Save
End With
End If
Next i
End Sub
我收到一条错误消息:
"对象不支持此属性或方法。">
有点模棱两可:
.Attachments.Add ActiveWorkbook.Worksheets("Inputs").Range("D5")
。因为Attachments.Add
可以采用表示完整文件路径的字符串或实际对象。在这种情况下,Add
无法判断您是在尝试添加单元格本身还是其值 - 似乎它默认尝试添加范围对象而不是读取单元格的默认属性 ( Value
(
更明确可以解决问题:
.Attachments.Add ActiveWorkbook.Worksheets("Inputs").Range("D5").Value
我正在尝试将共享驱动器中的PDF附加到许多Outlook电子邮件中
和
附件.Attachments.Add ActiveWorkbook.Worksheets("Inputs"(。范围("D5"( '确保此单元格与共享云端硬盘上所需的附件位置相对应
的源可以是文件(由带有文件名的完整文件系统路径表示(或构成附件的 Outlook 项目。
因此,您需要先复制硬盘驱动器上的文件,然后通过本地文件路径附加它们。