Вопрос:
Я пытаюсь отправить электронное письмо с несколькими вложениями через VBA и Outlook.
Код, который у меня есть, если я укажу путь к одному вложению/файлу, и я также могу добавить несколько вложений, если я точно знаю, что они собой представляют, но я не буду двигаться вперед – будут разные значения, а также имена файлов.
Мне бы хотелось отправить с помощью подстановочного знака, как показано в моем примере ниже, но я думаю, что мне нужно будет использовать какой-то цикл, указывающий на каталог.
Я искал тонну для решения, но мне еще предстоит увидеть что-нибудь, что с моей конкретной ситуацией.
Private Sub Command22_Click() Dim mess_body As String Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem Set appOutLook = CreateObject(«Outlook.Application») Set MailOutLook = appOutLook.CreateItem(olMailItem) Set appOutLook = CreateObject(«Outlook.Application») Set MailOutLook = appOutLook.CreateItem(olMailItem) With MailOutLook .BodyFormat = olFormatRichText .To = «test@test.org» .Subject = «test» .HTMLBody = «test» .Attachments.Add («H:testAdj*.pdf») ‘.DeleteAfterSubmit = True .Send End With MsgBox «Reports have been sent», vbOKOnly End Sub Лучший ответ:
Это то, что вы пытаетесь? (Непроверенные)
Private Sub Command22_Click() Dim mess_body As String, StrFile As String, StrPath As String Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem Set appOutLook = CreateObject(«Outlook.Application») Set MailOutLook = appOutLook.CreateItem(olMailItem) ‘~~> Change path here StrPath = «H:test» With MailOutLook .BodyFormat = olFormatRichText .To = «test@test.org» .Subject = «test» .HTMLBody = «test» ‘~~> *.* for all files StrFile = Dir(StrPath & «*.*») Do While Len(StrFile) > 0 .Attachments.Add StrPath & StrFile StrFile = Dir Loop ‘.DeleteAfterSubmit = True .Send End With MsgBox «Reports have been sent», vbOKOnly End Sub