Определить получателя Outlook на основе значения ячейки Excel для каждого электронного письма - PullRequest
0 голосов
/ 12 сентября 2018

Возникли проблемы с получением .To = для заполнения информации в столбце.Я пытаюсь установить, где, когда «Resolved» находится в столбце E, затем .To = заполнит соседний идентификатор сотрудника в столбце F при запуске макроса.Ниже приведено то, что я смог исследовать и выполнить, но мне не повезло с заполнением поля «Кому» на основе значений ячеек.Спасибо заранее за любую помощь.Не смог найти ничего по этому точному сценарию во время исследования.

Sub Send_Email()
    Dim rng As Range
    For Each rng In Range("E2:E22")
       If (rng.Value = "Resolved") Then
           Call mymacro(rng.Address)
       End If
    Next rng
End Sub

Private Sub mymacro(theValue As String)
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hi, your issue has been resolved should issues persist please contact 611 for additional assistance."
    On Error Resume Next
    With xOutMail
        .To = Cells().Value
        .CC = ""
        .BCC = ""
        .Subject = "Your issue has been resolved."
        .Body = xMailBody
        .Display   ' using .Send for final version
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

1 Ответ

0 голосов
/ 13 сентября 2018

Вы хотите использовать Excel VBA для доставки почты Outlook?

если так, Вы можете использовать следующий метод, чтобы получить адрес электронной почты в диапазоне.

Вы можете использовать Sheet1.Cells, чтобы получить адрес электронной почты в диапазоне. Адрес электронной почты находится в той же строке объекта RNG, в первом столбце. Sheet1.Cells (rng.Row, 1). Значение

При вызове метода mymacro (theValue As String) передайте адрес электронной почты параметру theValue.

Следовательно, в методе mymacro (theValue As String) .To должен использовать параметр Value.

Sub Send_Email()
    Dim rng As Range
    For Each rng In Range("C1:C4")
          If (rng.Value = "2") Then
          Call mymacro(Sheet1.Cells(rng.Row, 1).Value)
       End If
    Next rng
End Sub

Private Sub mymacro(theValue As String)
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hi, your issue has been resolved should issues persist please contact 611 for additional assistance."
    On Error Resume Next
    With xOutMail
        .To = theValue
        .CC = ""
        .BCC = ""
        .Subject = "Your issue has been resolved."
        .Body = xMailBody
        .Display   ' using .Send for final version
        '.Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...