Целью приведенного ниже кода VBA является создание нескольких черновиков электронных писем, заполненных From, To, CC, Subject, Body, Attachments из файла Excel.
Однако всякий раз, когда я пытаюсь запустить код выдается сообщение об ошибке «Не удается найти вложение, источник данных не найден», хотя при нажатии на ссылку в файле Excel открывается файл PDF, который я намереваюсь прикрепить.
Сетевой файл путь:
\ fake.fake \ Ydrive \ fake \ Finance \ Finance \ IM C Папки \ Счета поставщиков \ Счета и платежи \ AP_Calendar_2020.pdf
Ссылка в ячейке сохранена как ссылка, без цитат. Когда я нажимаю на ссылку, файл открывается. Я заменил идентифицирующую информацию словом «подделка» в приведенном выше тексте.
Я попытался удалить гиперссылку, поместить ссылку в кавычки и провел большой поиск. У меня такое ощущение, что это связано с тем, как VBA интерпретирует путь к сетевому файлу, но я не уверен.
Каковы возможные причины этого и что я могу сделать, чтобы решить эту проблему?
Спасибо за помощь!
Public Sub DraftOutlookEmails()
'Microsoft Outlook XX.X Object Library is required to run this code
'Variable declaration
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim lCounter As Long
'Set objects
Set objOutlook = Outlook.Application
'Read details from Excel sheet and draft emails
For lCounter = 6 To 8 'You can change the counter as per requirement
'Create a new email item
Set objMail = objOutlook.CreateItem(olMailItem)
'To
objMail.To = Sheet1.Range("A" & lCounter).Value
'Cc
objMail.CC = Sheet1.Range("B" & lCounter).Value
'Subject
objMail.Subject = Sheet1.Range("C" & lCounter).Value
'Email Body
objMail.Body = Sheet1.Range("D" & lCounter).Value
'Add Attachment
objMail.Attachments.Add Sheet1.Range("F" & lCounter).Value
'objMail.Attachments.Add (attachment)
'Draft email
objMail.Close (olSave)
'Close the object
Set objMail = Nothing
Next
'Show confirmation message to user
MsgBox "Done", vbInformation
End Sub