Этот код ниже создает (он не отправляет, потому что им нужна визуальная проверка) несколько электронных писем (около 60) с двумя вложениями, одно - 209 КБ pptx (я сжал его настолько, насколько мог) - и файл .xlsb (30 КБ- 700Кб в зависимости от).Текст в HTML, потому что мы нуждаемся в выделении.Я думал, что это было бы лучше, чем вызывать шаблон из внешнего вида, но если это неправильно, дайте мне знать, я не могу найти какую-либо информацию об этом.
Проблема в том, что он будет генерировать все электронные письма и прикреплять все файлы, это замораживает мой взгляд до такой степени, что я должен закрыть все и перезапустить из диспетчера задач.Я ждал более часа, чтобы посмотреть, работает ли он, но он просто генерирует электронные письма и затем зависает.Я могу видеть электронные письма через панель задач, но не могу выбрать их или свой почтовый ящик outlook.
Есть идеи, как это сделать?
Sub email()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim MailMessage As String
Dim CusName As String
Dim Lastrow As Long
Dim i As Long
Application.ScreenUpdating = False
Call getemails
MailMessage = "<HTML><BODY> Hello, <br><br>" _
& "Attached you will find your trailing 12 month (TTM) margin leak
report which was discussed on the Best Practices call in August. (Deck from
meeting attached as well)<br><br><br>" _
& "<li> Tab 1 shows margin leak by item<br><br>" _
& "<li>Tab 2 shows margin leak by vendor then by item<br><br>" _
& "<li>Tab 3 is data tab where you can see all the data<br><br>" _
& "Tab 1 and 2 includes a filter at the top so you can look at or
exclude specific PCATs.<br><br>" _
& "<b>Key definitions of fields on data tab:</b><br><br>" _
& "<li>Base Price, Base Cost, Base Margin – Price, Cost and Margin
dollars prior to margin leak<br><br>" _
& "Thank you,<br><br>" _
Lastrow = Range("A" & rows.Count).End(xlUp).Row
For i = 1 To Lastrow
Set olApp = GetObject(Class:="Outlook.Application")
If olApp Is Nothing Then
Set olApp = CreateObject(Class:="outlook.application")
End If
Set olMail = olApp.CreateItem(0)
With olMail
.To = Cells(i, 2).Value
.Subject = Format(MonthName(Month(Now))) & " - Margin Leak - " & Cells(i,
1).Value
.display
.HTMLBody = MailMessage
.Attachments.Add ("C:\Linking_Files\Best Practices Margin Leak.pptx")
.Attachments.Add ("C:\Desktop\June\" & Cells(i, 1).Value & ".xlsb")
End With
Set olMail = Nothing
Set olApp = Nothing
Next i
Application.ScreenUpdating = True
End Sub