【问题标题】:Attach files from a selected folder to an Outlook email将选定文件夹中的文件附加到 Outlook 电子邮件
【发布时间】:2021-10-28 16:14:23
【问题描述】:

我需要创建一封 Outlook 电子邮件并从一个文件夹中最多附加 10 个文件。
如果有 16 个文件,则应创建 2 个电子邮件,第一个包含 10 个文件,第二个包含剩余的 6 个文件。

当我尝试在循环中附加文件时,它给出了这个错误

对象不支持此属性或方法。 我不知道该怎么做。有人可以看看吗?

这里是代码。运行代码时可以选择任何包含文件的文件夹。

Sub attach()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    'Dim temp_Attach As Object
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        .Title = "Select a Folder"
        sFolder = .SelectedItems(1)
    End With
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sFolder)
    Set fls = f.Files
    
    
    Z = 10
    
    For d = 0 To fls.Count - 1 Step 10
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        'On Error Resume Next
        With OutMail
            .To = "abc@gmail.com"
            .CC = ""
            .subject = "file"
            
            y = 0
            For Each x In fls
                If y < Z Then
                    .Attachements.Add (sFolder & "\" & x.Name)
                    y = y + 1
                Else
                    Exit For
                End If
            
                Z = Z + 10
            
            Next
            .Display
            
        End With
    
    Next
    
End Sub

【问题讨论】:

    标签: vba file outlook attachment


    【解决方案1】:

    你拼错了Attachments这个词(你把它当作附件ements)。

    【讨论】:

      【解决方案2】:

      以下代码对我来说就像一个魅力:

      Set OutMail = OutApp.CreateItem(0)
          
      With OutMail
            .To = "abc@gmail.com"
            .CC = ""
            .subject = "file"
              
            y = 0
           
            For Each x In fls
              If y < Z Then
                 .Attachments.Add (sFolder & "\" & x.Name)
                 y = y + 1
              Else
                 Exit For
              End If
              
              Z = Z + 10
              
           Next
           .Display
              
        End With
      
      Next
      

      【讨论】:

      • 不幸的是,我还有另一个问题。能否请你帮忙?该代码仅创建 2 封电子邮件并将 16 个文件附加到两封电子邮件。因此,它只会发送 2 封相同的电子邮件。但是,我需要第一封电子邮件仅包含前 10 个文件,第二封电子邮件包含剩余的 6 个文件。如果文件夹中有 26 个文件 - 相同的逻辑。第一封邮件 -10 个文件,第二封邮件接下来 10 个文件,第三封邮件剩下 6 个文件
      猜你喜欢
      • 2017-05-20
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 2014-06-25
      • 2019-12-24
      相关资源
      最近更新 更多