Jak wysłać wiadomość e-mail, jeśli określona komórka zostanie zmodyfikowana w programie Excel?
W tym artykule omówiono wysyłanie wiadomości e-mail za pośrednictwem programu Outlook, gdy komórka z określonego zakresu jest modyfikowana w programie Excel.
Wyślij wiadomość e-mail, jeśli komórka w określonym zakresie zostanie zmodyfikowana kodem VBA
Wyślij wiadomość e-mail, jeśli komórka w określonym zakresie zostanie zmodyfikowana kodem VBA
Jeśli chcesz automatycznie utworzyć nową wiadomość e-mail z dołączonym aktywnym skoroszytem, gdy komórka z zakresu A2: E11 zostanie zmodyfikowana w określonym arkuszu, poniższy kod VBA może ci pomóc.
1. W arkuszu, do którego chcesz wysłać wiadomość e-mail na podstawie zmodyfikowanej komórki w określonym zakresie, kliknij prawym przyciskiem myszy kartę arkusza, a następnie kliknij Wyświetl kod z menu kontekstowego. Zobacz zrzut ekranu:
2. W wyskakującym okienku Microsoft Visual Basic for Applications należy skopiować i wkleić poniższy kod VBA do okna kodu.
Kod VBA: wyślij wiadomość e-mail, jeśli komórka w określonym zakresie zostanie zmodyfikowana w programie Excel
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2017/9/12
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xRg = Range("A2:E11")
Set xRgSel = Intersect(Target, xRg)
ActiveWorkbook.Save
If Not xRgSel Is Nothing Then
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "Cell(s) " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "Email Address"
.Subject = "Worksheet modified in " & ThisWorkbook.FullName
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Uwagi:
3. wciśnij inny + Q klawisze jednocześnie, aby zamknąć Microsoft Visual Basic for Applications okno.
Odtąd dowolna komórka w zakresie A2: E11 zostanie zmodyfikowana, zostanie utworzony nowy e-mail z załączonym zaktualizowanym skoroszytem. Wszystkie określone pola, takie jak temat, odbiorca i treść wiadomości e-mail, zostaną wymienione w wiadomości e-mail. Proszę wysłać e-mail.
Note: Kod VBA działa tylko wtedy, gdy używasz Outlooka jako programu pocztowego.
Podobne artykuły:
- Jak automatycznie wysyłać wiadomości e-mail na podstawie wartości komórki w programie Excel?
- Jak wysłać wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisany w programie Excel?
- Jak wysłać wiadomość e-mail, jeśli przycisk zostanie kliknięty w programie Excel?
- Jak wysłać wiadomość e-mail, jeśli termin został osiągnięty w programie Excel?
- Jak wysłać e-mail z przypomnieniem lub powiadomieniem, jeśli skoroszyt jest aktualizowany w programie Excel?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!