Использование VBA для отправки электронных писем на основе смежных условий
Я новый пользователь VBA и пытаюсь выполнить то, что я описал в названии, используя код ниже.
Я думаю, что это как-то связано с созданием dim специально для cc / bcc / и to, но я не совсем уверен. в одном столбце приведен список электронных писем, которые были отфильтрованы на основе определенных условий, а в столбце рядом с ним указано "" "cc" или "bcc". Если оно пустое, то оно переходит в "to", если это cc, то в поле.CC и т. Д. И т. Д.
Sub SendList()
'DIM
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurrFile As String
Dim emailRng As Range, cl As Range
Dim sTo As String
'SET
Set emailRng = ActiveSheet.Range("E3:E100").SpecialCells(xlCellTypeVisible)
For Each cl In emailRng
sTo = sTo & ";" & cl.Value
Next
sTo = Mid(sTo, 2)
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
'UPDATE WORKBOOK BEFORE SENDING
ActiveWorkbook.Save
CurrFile = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
'Need to find a way to automate to TO CC and BCC
With olMail
.To = sTo
.CC = ""
.BCC = ""
.Subject = "Audit Report XYZ" & " " & "-" & " " & Date
.Body = .Body & "Test" & vbCrLf & "Test2" & vbCrLf & "Test3"
.Attachments.Add "C:\Users\uq050e\Downloads\anyfile.xlsx" 'An audit report
.Display '.Send
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub
1 ответ
Похоже, проблема не в Outlook VBA, а в чтении содержимого Excel. Я бы посоветовал сначала немного изучить VBA и Excel, см. Начало работы с VBA в Excel 2010.
Вы можете использовать свойство Text класса Range, чтобы получить текст для указанного объекта / ячейки.