Автоматические почтовые сообщения Outlook с использованием VBA

У меня есть этот код, который я нашел где-то через Интернет, прикрепленный к концу моего кода. Он копирует необходимый лист, прикрепляет его к электронному письму и затем отправляет его.

Dim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String Dim TempFileName As String Dim OutApp As Object Dim OutMail As Object Set Sourcewb = ActiveWorkbook ActiveSheet.Copy Set Destwb = ActiveWorkbook With Destwb If Val(Application.Version) < 12 Then FileExtStr = ".xls": FileFormatNum = -4143 Else FileExtStr = ".xlsx": FileFormatNum = 51 End If End With TempFilePath = Environ$("temp") & "\" TempFileName = "Payments due in " & Format(DateAdd("m", 1, Now), "mmm-yyyy") Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) With Destwb .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum On Error Resume Next With OutMail .To = "[email protected]" .CC = "" .BCC = "" .Subject = "Payments due in " & Format(DateAdd("m", 1, Now), "mmm-yyyy") .Body = "FYI" .Attachments.Add Destwb.FullName .Send End With On Error GoTo 0 .Close savechanges:=False End With Kill TempFilePath & TempFileName & FileExtStr Set OutMail = Nothing Set OutApp = Nothing 

Когда я снова пытаюсь запустить код (в том же сеансе) без перезапуска Outlook, появляется следующее сообщение:

 runtime error, automation error, system call failed, 

и отладчик выделяет эту строку кода

 Set OutApp = CreateObject("Outlook.Application") 

и он говорит что-то о заблокированном объекте.

Как я могу повторить это несколько раз без перезапуска Outlook?

Я использую следующее и могу отправлять несколько писем без проблем

 sub sendEmail(varSubject, varBody, varTo, varCC) Dim objOL Set objOL = CreateObject("Outlook.Application") If objOL Is Nothing Then Set objOL = CreateObject("Outlook.Application") objOL.Session.Logon "Outlook", , False, True End If Dim objMsg Set objMsg = objOL.CreateItem(0) With objMSG .Subject = varSubject & " Updated - " &Date .To = varTo .cc = varCC .Body = varBody .Send End With end sub 

Несколько проблем:

  1. Ваш первый с заявлением. With Destwb действительно содержал любые подтемы, поэтому его не нужно использовать.

  2. On Error GoTo 0 – эта обработка ошибок устарела. Читайте «To Err – Vbscript»

  3. Пожалуйста, не помещайте ваш или кого-то elses в свой код электронной почты … lol Я думаю, что отправил случайное письмо после того, как восстановил код.

В любом случае, вот оно ….

 Dim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String Dim TempFileName As String Dim OutApp As Object Dim OutMail As Object Set Sourcewb = ActiveWorkbook ActiveSheet.Copy Set Destwb = ActiveWorkbook If Val(Application.Version) < 12 Then FileExtStr = ".xls": FileFormatNum = -4143 Else FileExtStr = ".xlsx": FileFormatNum = 51 End If TempFilePath = Environ("temp") & "\" TempFileName = "Payments due in " & Format(DateAdd("m", 1, Now), "mmm-yyyy") Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) With Destwb On Error Resume Next .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum If Err.Number <> 0 Then MsgBox "FileName Taken!" With OutMail .To = "[email protected]" .CC = "" .BCC = "" .Subject = "Payments due in " & Format(DateAdd("m", 1, Now), "mmm-yyyy") .Body = "FYI" .Attachments.Add Destwb.FullName .Send End With .Close savechanges:=False End With OutMail.Quit Set OutMail = Nothing Set OutApp = Nothing End Sub 
  • Office 2013 - VBA Email не отображает переменные To / CC / BCC
  • Каждая строка отправляет электронное письмо тому же получателю
  • Программно подавить сообщение электронной почты электронной почты Outlook с помощью Excel VBA
  • Попытка открыть шаблон электронной почты Outlook с помощью excel VBA
  • Копирование Вставка определенных ячеек Excel в автоматическую почтовую почту Outlook
  • Отправка электронной почты от Excel с помощью VBA - Outlook, добавляющий цвет фона
  • Excel создает электронную почту Outlook, но текст не выравнивается
  • Создание вложения из листа Google в формате MS Excel через скрипт Google
  • VBA: Поиск электронной почты в почтовом ящике не по умолчанию?
  • Экспорт электронной почты из папок Outlook в Excel. Проблема с кодированием
  • Отправка писем с помощью Outlook 2013 / Excel 2013
  • Давайте будем гением компьютера.