【问题标题】:Email Attachment with specific word带有特定单词的电子邮件附件
【发布时间】:2019-08-02 22:03:53
【问题描述】:

我想从特定文件夹(路径)添加附件我正在寻找宏以从 D 列中获取附件名称,但只有最后一个单词作为文件夹中的附件将只包含给定文件夹中的最后一个单词。

例如。在 D2 宏中将在指定文件夹中搜索单词“QR”并添加附件。

Sub SendMultipleEmailsaa()

Dim Mail_Object, OutApp As Object
Dim ws As Worksheet: Set ws = ActiveSheet
Dim arr() As Variant

LastRow = ws.Cells(ws.Rows.Count, "b").End(xlUp).Row

ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:=ws.Range("A2:A" & LastRow),         SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ws.Sort
.SetRange ws.UsedRange
.Header = False
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

arr = ws.Range("A2:A" & LastRow)

 Set Mail_Object = CreateObject("Outlook.Application")

first = 2

For i = LBound(arr) To UBound(arr)


If i = UBound(arr) Then GoTo YO
If arr(i + 1, 1) = arr(i, 1) Then
            first = WorksheetFunction.Min(first, i + 1)
Else
YO:
Set OutApp = Mail_Object.CreateItem(0)

With OutApp
     .Subject = ws.Range("C" & i + 1).Value
     .Body = "Your message here"
     .Display
     .To = ws.Range("B" & i + 1).Value
     For j = first To i
        .Recipients.Add ws.Range("B" & j).Value
     Next
     first = i + 2

End With
End If

Next

End Sub

【问题讨论】:

标签: excel vba


【解决方案1】:

更改这部分代码:

With OutApp
     .Subject = ws.Range("C" & i + 1).Value
     .Body = "Your message here"
     .Display
     .To = ws.Range("B" & i + 1).Value
     For j = first To i
        .Recipients.Add ws.Range("B" & j).Value
     Next
     first = i + 2

End With

与:

pth = "F:\WIN7PROFILE\Desktop\File\"
With OutApp
     .Subject = ws.Range("C" & i + 1).Value
     .Body = "Your message here"
     .Display
     .To = ws.Range("A" & i + 1).Value
     .Attachments.Add pth & Dir(pth & "*" & Replace(ws.Range("D" & i + 1).Value, "File - Fund ", "") & "*")
     For j = first To i
        .Recipients.Add ws.Range("A" & j).Value
     Next
     first = i + 2

End With

【讨论】:

  • 您可能还需要在附件行中添加文件扩展名
  • 很抱歉,此代码不起作用,因为路径中的文件名不一样,文件名仅包含最后一个单词,例如。 D2“文件-基金二维码”文件名​​将是“Jan 2019 QR SMS”
  • @khyatidedhia 我认为您需要回到绘图板上。将文件名存储在您的附件栏中,否则您只会把它变成一个令人头疼的问题。为了实现你想要的,你需要操作最后一位的字符串(很容易)循环遍历目录中的所有文件,以找到可能包含该字符串的文件,然后添加。但是多个文件会发生什么?
  • @Tom 我现在添加了一个 DIR 函数。
  • @Mikku 如果找不到文件,这不会倒下吗?