从文件夹获取文件以附加到电子邮件,运行时错误 13

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

我想发送带有附件的电子邮件并遇到

运行时错误 13(类型不匹配)

只有一个文件夹,没有子文件夹。文件为 .docx 格式

Sub SendEmail_Example1()
' email processing

For i = 2 To Sheet1.Range("A" & Rows.Count).End(xlUp).Row
    Dim EmailApp As Outlook.Application
    Dim Source As String
    Set EmailApp = New Outlook.Application

    Dim EmailItem As Outlook.MailItem
    Set EmailItem = EmailApp.CreateItem(olMailItem)

    EmailItem.To = Sheet1.Range("D" & i).Value
    'EmailItem.CC = "[email protected]"
    'EmailItem.BCC = "[email protected]"
    EmailItem.Subject = "User info of " & Sheet1.Range("D" & i).Value
    EmailItem.HTMLBody = "Hi, below is your user info " & "<br>" & "User is: " & Sheet1.Range("B" & i).Value & "<br>" & _
      "Password is : " & vbNewLine & Sheet1.Range("C" & i).Value & _
      vbNewLine & vbNewLine & _
      "<br>" & "Regards," & _
      "<br>" & "VT"
    'Source = ThisWorkbook.FullName
    '---------Attachment
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    Dim file As file
    Dim folder As folder
    Set folder = fso.GetFolder("C:\Users\duc.nguyen3-ad\Desktop\mail")
    'Source = "C:\test"
    For Each file In folder.Files
        If Sheet1.Range("A" & i).Value = fso.GetBaseName(file.Name) Then
            EmailItem.Attachments.Add file.Path
            Exit For
        End If
    Next file
    
    EmailItem.Send
Next i
End Sub

该行突出显示

Set folder = fso.GetFolder("C:\Users\duc.nguyen3-ad\Desktop\mail")
vba outlook runtime-error
1个回答
0
投票

尝试

Sub AttachFiles()

Dim strFolder As String
Dim strFile As String, i

For i = 2 To Sheet1.Range("A" & Rows.Count).End(xlUp).Row
With CreateObject("outlook.application").CreateItem(0)
        .To = Sheet1.Range("D" & i).Value
        .Subject = "User info of " & Sheet1.Range("D" & i).Value
        .HTMLBody = "Hi, below is your user info " & "<br>" & "User is: " & Sheet1.Range("B" & i).Value & "<br>" & _
        "Password is : " & vbNewLine & Sheet1.Range("C" & i).Value & _
        vbNewLine & vbNewLine & _
        "<br>" & "Regards," & _
        "<br>" & "VT" & .HTMLBody

        strFolder = "C:\path\to\files\" ' Change to your needed folder
        strFile = Dir(strFolder & "*.*")
        Do While Len(strFile) > 0
            If Sheet1.Range("A" & i).Value = strFile Then
                 .Attachments.Add strFolder & strFile 'strfile is filename.filetype
                 .Display '.Send
                 Exit Do
            End If
            strFile = Dir
        Loop
        
End With
Next i
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.