excel - 如何从excel中包含任何值(文件路径)的列中添加多个附件

标签 excel vba attachment

我正在尝试创建一个 VBA 代码,该代码将能够告诉 excel 从其中具有任何值(文件路径)的特定列中添加多个附件。

例如。我的 Excel 列 BD2:BD2000 仅包含电子邮件附件列表,我希望 Excel 从单元格 BD2:BD20000 中选择所有值(如果它们不为空,并且基本上是文件路径)并将其作为多个附件附加到我的 Outlook 电子邮件.

但是,我无法让它工作。

这是我到目前为止所拥有的:

Private Sub ToggleButton3_Click()

 Dim OutApp As Object
    Dim OutMail As Object

    Set emailRng = Worksheets("Workings").Range("BC2:BC2000")
    Set FilepathRng = Worksheets("Workings").Range("BD2:BD2000")


    For Each cl In emailRng
        sTo = sTo & ";" & cl.Value

    Next

    sTo = Mid(sTo, 2)

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Next

    sTo = Mid(sTo, 2)


    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = ComboBox17.Value
        .CC = sTo
        .BCC = ""
        .Subject = TextBox18.Value
        .Body = "Hi there"
        .Attachments.add = FilepathRng


    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing


End Sub

感谢是否有人愿意提供帮助。我是 VBA 的新手,我正在尝试为此找到简单的解决方案,因此我将不胜感激任何人可以提供的任何详细且易于理解/建议/解决方案。

谢谢!

最佳答案

此代码将附加范围“BC2:BC2000”中的所有文件路径。

警告:

在一封电子邮件中添加这么多文件不是​​一个好方法。您的系统可能会挂起。要添加 2000 个文件,请相应地更改 For Loop 中的范围。

Private Sub ToggleButton3_Click()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cl As Range
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    Set emailRng = Worksheets("Workings").Range("BC2:BC2000")

    For Each cl In emailRng
        sTo = sTo & ";" & cl.Value

    Next

    sTo = Mid(sTo, 2)

    With OutMail
        .To = ComboBox17.Value
        .CC = sTo
        .BCC = ""
        .Subject = TextBox18.Value
        .Body = "Hi there"

        For Each cl In Worksheets("Workings").Range("BD2:BD2000")
            If Len(cl.Value) > 1 Then
            .Attachments.Add cl.Value
            End If
        Next

        .Display

    End With


    Set OutMail = Nothing
    Set OutApp = Nothing


End Sub

关于excel - 如何从excel中包含任何值(文件路径)的列中添加多个附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56521816/

相关文章:

excel - 运行调用和 Excel 脚本的 vba 脚本时,电子邮件停止发送

android - 从邮件附件打开 x509 证书 (.crt) 时接收 Intent

java - JExcel : Losing Cell Precison On Cells Having Formula ROUNDUP in MS Excel

xml - 创建自定义 XML 映射

ms-access - Access VBA - 使用书签删除过滤器并保留在当前记录中

vba - 替换文本和格式化文本的更优雅的方式

c# - Exchange Web 服务 - 处理消息和访问附件

c# - 文件作为附件发送后被锁定

Excel 每 n 行求和

c# - Excel图表类型垂直值