如何将PDF(同一工作簿中不同Excel工作表中的位置附加到Outlook邮件?

问题描述 投票:0回答:2

我正在尝试将共享驱动器中的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

我收到错误消息:

“对象不支持此属性或方法。”

excel vba outlook attachment
2个回答
0
投票

这有点模棱两可:

.Attachments.Add ActiveWorkbook.Worksheets("Inputs").Range("D5")

...因为Attachments.Add可以采用任一代表完整文件路径的字符串一个实际对象。在这种情况下,Add无法确定您是要添加单元格本身还是其值-似乎默认情况下是尝试添加范围对象而不是读取单元格的默认属性(Value

更明确地解决了问题:

.Attachments.Add ActiveWorkbook.Worksheets("Inputs").Range("D5").Value

0
投票

我正在尝试将共享驱动器中的PDF附加到许多Outlook电子邮件中

。Attachments.Add ActiveWorkbook.Worksheets(“ Inputs”)。Range(“ D5”)'确保此单元格与共享驱动器上所需的附件位置相对应

附件的来源可以是文件(由具有文件名的完整文件系统路径表示)或构成附件的Outlook项目。

因此,您需要首先复制硬盘驱动器上的文件,然后通过本地文件路径附加它们。

© www.soinside.com 2019 - 2024. All rights reserved.