В предположении я бы сказал, что у вас нет ссылки на dll перспективы.
Попробуйте щелкнуть меню «Сервис» в редакторе VBA и выбрать «Ссылки» ...
Затем прокрутите список вниз, пока не найдете Microsoft Outlook XX Object Library
, и выберите его. XX это просто номер версии.
При возникновении вопросов, пожалуйста, всегда сообщайте нам строку кода, в которой произошла ошибка, и точное сообщение об ошибке. В противном случае мы просто догадываемся.
Относительно вашего исправленного вопроса:
Я запустил твой код, и он отлично работает. Однако я удостоверился, что лист с именами файлов является активным, иначе вы получите ошибки.
Я предлагаю вам явно ссылаться на лист с данными, а не просто использовать Cells(i,3)
, так как это сокращение для использования активного листа.
Вот один из способов сделать это:
Sub AttachMultipleFilesToEmail()
Dim outlookApp As Outlook.Application
Dim myMail As Outlook.MailItem
Dim sheet As Worksheet 'declare an object to point to the sheet with the data
Set outlookApp = New Outlook.Application
Set myMail = outlookApp.CreateItem(olMailItem)
Set sheet = Worksheets("Sheet1") 'set the object to the correct sheet
For i = 1 To 2
source_file = "C:\Work Files\" & sheet.Cells(i, 3) 'use the sheet object to ensure the correct cells are used.
myMail.Attachments.Add source_file
Next i
End Sub