Я хочу выбрать тело конкретного письма, скопировать его и вставить в Outlook. я знаю, что было бы проще просто нажать Ctrl + A, а затем Ctrl + C в электронной таблице, но это всего лишь часть гораздо большего процесса, который включает автоматизацию отчета. это код, который у меня есть:Выберите тело письма, скопируйте его и вставьте в excel с помощью VBA
Sub GetFromInbox()
Dim olApp As Outlook.Application
Dim olNs As Outlook.Namespace
Dim olFldr As Outlook.MAPIFolder
Dim olItms As Outlook.Items
Dim olMail As Variant
Dim i As Long
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace(”MAPI”)
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items
olItms.Sort “Subject”
i = 1
For Each olMail In olItms
If InStr(olMail.Subject, “Criteria") > 0 Then
ThisWorkbook.Sheets("YourSheet").Cells(i, 1).Value = outMail.Body
i = i + 1
End If
Next olMail
Set olFldr = Nothing
Set olNs = Nothing
Set olApp = Nothing
End Sub
я получаю ошибку синтаксиса на этой линии:
If InStr(olMail.Subject, “Criteria") > 0 Then
поэтому я не знаю, что мне не хватает или делать неправильно, так, пожалуйста, помогите, как я не являюсь очень опытный с VBA.
Первый параметр для 'InStr' - это начальная позиция. Попробуйте 'If InStr (1, olMail.Subject,« Criteria »)> 0 Then' –
@TonyDallimore спасибо за это! Пропустил эту часть! ... Я получаю сообщение об ошибке на самой следующей строке, говорящей о ошибке времени выполнения 424 Object Обязательно? Извините, но я только кодировал в VBA в течение 3 месяцев! –
Вставить опцию Explicit в верхней части модуля. Вкладка «Инструменты | Параметры | Редактор» - «Требовать объявление переменных». – niton