Отправить письмо на основе имени ячейки

1 ответ

Предполагая, что ваш существующий код уже исправен, вы должны:

  • Перейти в верхнем левом углу вашей IDE к дереву проектов
  • Нажмите на лист, который вы хотите контролировать

... и записывать туда свой исходный код (исправленный, чтобы он мог принимать параметры вместо жестко заданных значений для адреса электронной почты, темы и т. д.):

Private Sub sendEmail(ByVal Email_Subject As String, ByVal Email_Send_From As String, _
                      ByVal Email_Send_To As String, ByVal Email_Cc As String, _
                      ByVal Email_Body As String)

    On Error GoTo debugs
    Set Mail_Object = CreateObject("Outlook.Application")
    Set Mail_Single = Mail_Object.CreateItem(0)
    With Mail_Single
        .Subject = Email_Subject
        .To = Email_Send_To
        .CC = Email_Cc
        .BCC = Email_Bcc
        .Body = Email_Body
        .send
    End With

debugs:
   If Err.Description <> "" Then MsgBox Err.Description

End Sub
[ 1121] ... и слушатель события Worksheet_Change, где каждый раз, когда измененная ячейка находится в столбце G, вызывается Sub sendEmail (в этом примере я передаю параметры Offset(0 ( та же строка) , -n) (где n - это количество столбцов до или после G информации, такой как Email_address):

Private Sub Worksheet_Change(ByVal Target As Range)
    If Split(Target.Address, "$")(1) = "G" And Target.Value = "magic words" Then
        sendEmail Target.Offset(0, -1), Target.Offset(0, -2), ...
    End If
End Sub

Просто для справки, например, когда я говорю Target.Offset(0,-2), если Target является (скажем) Range("G4"), то Target.Offset(0,-2) будет Range("E4") (та же строка 0, двумя столбцами перед -2).

0
ответ дан Matteo NNZ 21 January 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: