Добавление переменной в .Attachments.Add - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь отправить электронное письмо, используя переменную пути в .Attachments.Add, но электронное письмо не включает вложения.Когда я просто добавляю фактический путь после .Attachments.Add, без переменных (как показано ниже), электронное письмо включает в себя вложения.

.Attachments.Add "C:\Users\id\Desktop\file_name.xlsx"

Метод прикрепления книг (с использованием переменных пути) работал один раз, но теперь книги почему-то не прикрепляются.Поскольку строка из переменной пути и фактический путь совпадают, что может привести к тому, что книги не присоединятся при использовании переменной?Ниже приведен мой код ...

Два параметра (title1 и title2) являются заголовками рабочей книги.

Sub Mail_Workbook_Comb1(ByVal title1 As String, ByVal title2 As String)

Dim OutApp As Object
Dim OutMail As Object
Dim id As String
Dim path1 As String
Dim path2 As String
Dim rnge As Range
Dim sht As Excel.Worksheet
Dim wdoc As Word.Document
Dim distroRnge As Range

id = LCase(workbooks("Supplier_Automation.xlsm").Sheets("Home").Range("C3"))
path1 = "C:\Users\" & id & "\Desktop\" & title1 & ".xlsx"
path2 = "C:\Users\" & id & "\Desktop\" & title2 & ".xlsx"

MsgBox path1
MsgBox path2

Set distroRnge = workbooks("Supplier_Automation.xlsm").Sheets("Distros").Range("A29")
Set sht = workbooks("Supplier_Automation.xlsm").Sheets("Email Template")
Set rnge = sht.Range("B1:B19")
    rnge.CopyPicture Appearance:=xlScreen, Format:=xlPicture

With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

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

On Error Resume Next
With OutMail
    .To = myname@email.com
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .body = ""
    .Attachments.Add path1
    .Attachments.Add path2
    wdoc.Range.PasteAndFormat Type:=wdChartPicture
    With wdoc
        .InlineShapes(1).Height = 345
     End With
    .display   'or use .Send
End With

With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

1 Ответ

0 голосов
/ 15 мая 2018

Пока параметры title1 и title2 передавали заголовки книги, я понял, что они не включают дату, которая была добавлена ​​в книгу до вызова подпрограммы Mail_Workbook_Comb1.Я закончил тем, что добавил переменную даты в конец строки переменной пути, и это позволило переменной пути соответствовать тому, что было сохранено на моем рабочем столе

Dim edate As String
Dim today As String

today = Date

edate = Format(DateAdd("d", -1, today), "mmdd")

id = LCase(workbooks("Supplier_Automation.xlsm").Sheets("Home").Range("C3"))
path1 = "C:\Users\" & id & "\Desktop\" & title1 & " " & edate & ".xlsx"
path2 = "C:\Users\" & id & "\Desktop\" & title2 & " " & edate & ".xlsx"
path3 = "C:\Users\" & id & "\Desktop\" & title3 & " " & edate & ".xlsx"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...