Предполагая, что ваш существующий код уже исправен, вы должны:
- Перейти в левом верхнем углу вашей 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
... и слушатель события 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
).