我正在尝试将共享驱动器中的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”)。Range(“ D5”)'确保此单元格与共享驱动器上所需的附件位置相对应
附件的来源可以是文件(由具有文件名的完整文件系统路径表示)或构成附件的Outlook项目。
因此,您需要首先复制硬盘驱动器上的文件,然后通过本地文件路径附加它们。