У меня есть макрос Excel, используемый для отправки электронных писем с вложениями, которые являются книгами Excel.Иногда вместо прикрепляемого файла он становится встроенным объектом.Этот встроенный объект доступен для пользователей внутри компании (после нажатия кнопки «Вы собираетесь активировать встроенный объект, который может содержать вирусы или иным образом причинять вред вашему компьютеру. Важно убедиться, что он из надежного источника»Вы хотите продолжить? "), Но для тех, кто находится за пределами компании, электронная почта, похоже, вообще не имеет вложений.
Это происходит случайно, и только на некоторых компьютерах.Таким образом, если список содержит 15 списков адресов электронной почты и вложений, это случается где-то между 0 и 15 письмами.Чтобы быть ясным, моя цель состоит в том, чтобы отправлять электронные письма с регулярными вложениями.Запуск Excel 2003, Outlook 2003 и Windows XP.
Sub Email()
Dim P As String
Dim N As String
Dim M As String
Dim Subject As String
Dim Addresses As String
Dim olApp As Outlook.Application
Dim olNewMail As Outlook.MailItem
Application.DisplayAlerts = False
M = ActiveWorkbook.Name
For c = 2 To 64000
If Range("B" & c) = "" Then Exit For
If UCase(Range("E" & c)) = "Y" Then
Workbooks(M).Sheets("Main").Activate
Subject = Range("A" & c)
Addresses = Range("B" & c)
P = Range("C" & c)
N = Range("D" & c)
If Right(P, 1) <> "\" Then P = P & "\"
If Right(N, 4) <> ".xls" Then N = N & ".xls"
Set olApp = New Outlook.Application
Set olNewMail = olApp.CreateItem(olMailItem)
With olNewMail
.Display
.Recipients.Add Addresses
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys ("{TAB}")
.Subject = Subject
.Attachments.Add P + N
.Send
End With
Set olNewMail = Nothing
Set olApp = Nothing
End If
Next c
Range("E2:E65536").ClearContents
Application.DisplayAlerts = True
End Sub