Использование 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, чтобы получить текст для указанного объекта / ячейки.

Другие вопросы по тегам