Я пытаюсь добавить прикрепить файл к электронному письму, созданному из шаблона.Идея состоит в том, чтобы иметь возможность использовать средство выбора файлов для выбора нескольких файлов, и Excel отправляет электронное письмо нужным получателям с правильными вложениями.
Проблема заключается в том, что я не могу использовать метод ".Display", не получивошибка, и я хочу просмотреть электронное письмо перед отправкой, поэтому я не хочу использовать ".Send".
Однако по какой-либо причине, если я очищаю тело шаблона электронной почты с помощью ".Body = ''"Я могу отобразить письмо и прикрепить правильный файл.Хотелось бы сохранить тело письма в шаблоне без изменений и переписать его.
Так что мне кажется, что я не могу использовать шаблон электронной почты, если хочу сначала отобразить его перед отправкой?Кто-нибудь когда-нибудь сталкивался с этой проблемой или знает, как ее решить?
Сообщение об ошибке:
'- 2147221233 (8004010f)' Попытка выполнить операцию не удалась.Не удалось найти объект.
Кстати, большинство переменных объявлены глобально, поэтому они не видны.
Dim Agency As String
Dim xfullName As Variant
Dim Template As String
Dim mail As Outlook.mailItem
Dim myOlApp As Outlook.Application
Dim selectedFile As Variant
Dim emailBody As String
Dim emailType As String
Dim recipients As String
Sub Recall_Email()
Dim fileName As String
Dim inputFile As FileDialog
Set myOlApp = CreateObject("Outlook.Application")
Set inputFile = Application.FileDialog(msoFileDialogFilePicker)
Template = "C:\Users\me\AppData\Roaming\Microsoft\Templates\Recall Templates\Recall Template.oft"
With inputFile
.AllowMultiSelect = True
If .Show = False Then Exit Sub
End With
For Each selectedFile In inputFile.SelectedItems
xfullName = selectedFile
fileName = Mid(inputFile.SelectedItems(1), InStrRev(inputFile.SelectedItems(1), "\") + 1, Len(inputFile.SelectedItems(1)))
Agency = Left(fileName, 3)
CreateTemplate(Template)
Next selectedFile
End Sub
Private Sub CreateTemplate(temp)
Set myOlApp = CreateObject("Outlook.Application")
Set mail = myOlApp.CreateItemFromTemplate(temp)
Set olAtt = mail.Attachments
With mail
'.Body = "" -- If I use this line, everything attaches
.Subject = Agency & " Recall File"
.To = "email"
.Attachments.Add xfullName
.Display '.Send
End With
End Sub