Как отправить активный лист или выбранный лист во вложении? - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь отправить форму.

Я пытался заменить эту рабочую книгу на ThisWorkbook.worksheets ("Форма").

Sub send_mail()
Dim outlookOBJ As Object
Dim mItem As Object
Set outlookOBJ = CreateObject("Outlook.application")
Set mItem = outlookOBJ.createItem(olMailItem)
With mItem
    .to = "miketheemperor@gmail.com"
    .Subject = "test"
    .body = "test"
    .attachments.Add ThisWorkbook.path & "\" & ThisWorkbook.Name
    .display
End With

End Sub

1 Ответ

0 голосов
/ 31 января 2020

Вы можете попробовать что-то вроде копирования листа в новую книгу, добавить эту новую книгу и затем удалить ее.

Dim outlookOBJ As Object
Dim mItem As Object
Set outlookOBJ = CreateObject("Outlook.application")
Set mItem = outlookOBJ.createItem(olMailItem)


Dim TempPath As String
TempPath = "C:\Temp\TempWorkbook.xlsx" 'a path where will save a temporary workbook

ThisWorkbook.Worksheets("Form").Copy 'this will copy the worksheet FORM to a NEW workbook. That new WB will be the active one
ActiveWorkbook.SaveAs TempPath
ActiveWorkbook.Close False

With mItem
    .to = "miketheemperor@gmail.com"
    .Subject = "test"
    .body = "test"
    .attachments.Add TempPath
    Kill TempPath 'we delete the temporary Workbook
    .display
End With
...