簡體   English   中英

在 VBA 中添加 Outlook 附件

[英]Adding Outlook Attachments in VBA

我的代碼運行良好,直到附件出現。

我正在嘗試做的事情。

  1. 所有電子郵件地址都在 B 列中。
  2. 在 C 列中,每個電子郵件地址旁邊都有文件路徑和文件名。 (C:\\桌面\\test.xlsm)
  3. 我正在嘗試自動化將帶有這些附件的電子郵件發送到這些地址的過程。 彈出一個用戶表單,提示群發電子郵件的任何抄送、主題、文本。

這是代碼

Dim SendTo As String
Dim Atmt As String
Dim ToMSg As String

    For i = 2 To LastRow
        Atmt = ThisWorkbook.Sheets(1).Cells(i, 3).Value

        SendTo = ThisWorkbook.Sheets(1).Cells(i, 2)
            If SendTo <> "" Then
                ToMSg = DraftBox.Value
                Send_Mail SendTo, ToMSg
            End If

    Next i

    Unload Me

End Sub


Sub Send_Mail(SendTo As String, ToMSg As String)
    Dim OutlookApp As Object
    Dim OutlookMail As Object

    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)


    With OutlookMail
        .To = SendTo
        .CC = CC.Value
        .BCC = BCC.Value
        .Subject = Subject.Value
        .Body = ToMSg
 .attachments.add Atmt
        .Send

我附上了相關的代碼。 它一直告訴我 Atmt 是空的。 請幫忙..

Send_Mail子中,您需要包含一個參數來傳遞附件路徑:

Sub Send_Mail(SendTo As String, ToMSg As String, Atmt as String)

然后當你調用Send_Mail子時,傳遞你想要提供的參數:

Send_Mail SendTo, ToMSg, Atmt

我使用Atmt的事實完全是任意的,並且基於您的示例。 你可以在你的子文件中調用任何你想要的名字。

您還可以通過將Atmt聲明為任何特定Sub范圍之外的GlobalPublic變量來使其工作。 它當前是在第一個 sub 中聲明的,因此當您嘗試在Send_Mail sub 中使用它時,該變量Send_Mail sub 來說是未知的,因此它告訴您它是空的。

不過,我會更多地采用第一種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM