2016-07-28 3 views
1

Я ищу, чтобы моя электронная таблица отправляла электронные письма после изменения ячейки.Запустите мой макрос при изменении ячейки excel

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

Теперь у меня есть:

Sub Create_Email_From_Excel() 
    Dim SendTo As String 
    Dim ToMSg As String 

For i = 1 To 10 
    SendTo = ThisWorkbook.Sheets(1).Cells(i, 1) 
    If SendTo <> “” Then 
     ToMSg = ThisWorkbook.Sheets(1).Cells(i, 3) 
     Send_Mail_From_Excel SendTo, ToMSg 
     End If 
    Next i 
End Sub 


Sub Send_Mail_From_Excel(SendTo As String, ToMSg As String) 
Dim OutlookApp As Object 
Dim OutlookMail As Object 

Set OutlookApp = CreateObject("Outlook.Application") 
Set OutlookMail = OutlookApp.CreateItem(0) 

With OutlookMail 
    .To = SendTo 
    .CC = "[email protected]" 
    .BCC = “” 
    .Subject = "You have mail" 
    .Body = "this is your mail" 
    .Send 
End With 

И ...

Private Sub CommandButton1_Click 
    Create_Email_From_Excel 
End Sub 

Я не уверен, куда идти отсюда, или если я иду в правильном направлении. Командная кнопка и макросы работают, но я не могу идти дальше.

Если он может excecute создать письмо от excel макроса, когда ячейка в столбце G изменится с «ожидающего» на «поздний», который будет выдающимся.

+1

Посмотрите на события [Worksheet_Change] (https://msdn.microsoft.com/en-us/library/office/ff839775.aspx) , – tigeravatar

ответ

0

Try Worksheet_Change событие

Пример

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$G$1" Then 
     ' 
     'When someone Edits the cell G1 
     ' 
     Call Create_Email_From_Excel 
     ' 
     ' 
    End If 
End Sub 
Смежные вопросы