Note: The other languages of the website are Google-translated. Back to English

Jak wysłać wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisany w programie Excel?

W tym artykule mowa jest o wysyłaniu wiadomości e-mail za pośrednictwem programu Outlook, gdy określony skoroszyt jest zapisywany w programie Excel. Postępuj zgodnie z instrukcją.

Wyślij wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisywany z kodem VBA


Wyślij wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisywany z kodem VBA

Aby wysłać wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisany w programie Excel, wykonaj następujące czynności.

1. Najpierw zapisz skoroszyt jako skoroszyt programu Excel z włączoną obsługą makr. Kliknij filet > Zapisz jako, w Zapisz jako W oknie dialogowym wybierz folder do zapisania skoroszytu, nadaj mu nazwę w polu Nazwa pliku, wybierz Skoroszyt Excel z włączoną obsługą makr z Zapisz jako typ listę rozwijaną, a następnie kliknij plik Zapisz przycisk. Zobacz zrzut ekranu:

2. Otwórz skoroszyt programu Excel z włączoną obsługą makr, który właśnie zapisałeś, i naciśnij inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications kliknij dwukrotnie Ten zeszyt na lewym pasku, a następnie skopiuj i wklej poniższy kod VBA do pliku Ten zeszyt okno kodu. Zobacz zrzut ekranu:

Kod VBA: wyślij wiadomość e-mail po zapisaniu skoroszytu

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Uwagi: Proszę wymienić Adres e-mail z adresem e-mail odbiorcy .To = "Adres e-mail", zmień pola Cc, Subject i body w kodzie VBA według potrzeb.

3. wciśnij inny + Q klawisze jednocześnie, aby zamknąć Microsoft Visual Basic for Applications okno.

Odtąd, po zaktualizowaniu skoroszytu i zapisaniu go, wiadomość e-mail zostanie utworzona automatycznie z załączonym zaktualizowanym skoroszytem. Proszę kliknąć Wyślij przycisk, aby wysłać wiadomość e-mail. Zobacz zrzut ekranu:

Uwagi: Kod VBA działa tylko wtedy, gdy używasz Outlooka jako programu pocztowego.


Podobne artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

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!
officetab dół
Sortuj komentarze według
Komentarze (17)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak zautomatyzować powiadomienia e-mail w VBA na podstawie zakresu dat, bez konieczności wyświetlania wyskakującego okienka z uprawnieniami bezpieczeństwa, aby umożliwić VBA wysłanie wiadomości e-mail.
Ten komentarz został zminimalizowany przez moderatora na stronie
Gracias. Consulta: utilizando esta misma rutina, como podría enviar el correo a un correo específicodependiendo el valor de otra celda?
Ten komentarz został zminimalizowany przez moderatora na stronie
Szanowni Państwo, chciałbym zapytać jak dołączyć funkcjonalny link do określonego folderu na serwerze, jeśli wkleję link to pojawia się on w skoroszycie tak jak zwykły tekst a więc nie działa w otrzymanej wiadomości e-mail, jak mogę przekształcić go w link, aby odbiorcy mogli go kliknąć?
Chciałbym użyć tego sposobu zamiast wysyłania załączonego pliku Excela.
Dzięki za radę
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Robert,
Przepraszamy, nie mogę w tym pomóc, zapraszamy do zadawania pytań dotyczących programu Excel na naszym forum: https://www.extendoffice.com/forum.html. Otrzymasz więcej wsparcia dla Excela od naszych profesjonalnych lub innych fanów Excela.
Ten komentarz został zminimalizowany przez moderatora na stronie
Umieściłem to w treści e-maila i zadziałało dla mnie...
"plik:///Z:\katalog1\katalog2\katalog3\Test1.xlsm"
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, fajny artykuł! Jedną z rzeczy, które starałem się dzięki temu osiągnąć, jest dołączenie bieżącego stanu skoroszytu do wiadomości e-mail.

W tej chwili wysyła tylko oryginalny stan pliku i nie zawiera żadnych zmian, które wprowadziłby użytkownik.

Jakieś pomysły, jak to zaimplementować za pomocą makra?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Chris,
Kod został zaktualizowany i rozwiązany problem, spróbuj. Dziękuję za Twój komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Chris,

Trafiłem na ten sam problem.
Obecnie kody są używane w module „przed zapisaniem”.
Co oznacza, że ​​e-mail wyśle ​​arkusz kalkulacyjny, który był przed zapisaniem.

Jest jeszcze jeden moduł „po zapisaniu”.
Zastosowałem kod w tym module i zadziałał jak czar.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak będzie to obsługiwane w przypadku dokumentu Office 365. Oszczędza się automatycznie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje sposób na automatyczne szyfrowanie wiadomości e-mail?
Ten komentarz został zminimalizowany przez moderatora na stronie
Hi Mike,
Przepraszamy, nie mogę pomóc w rozwiązaniu tego problemu. Dziękuję za Twój komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć! Bardzo dziękuję za tę wskazówkę :-) Chciałbym zrobić coś więcej w tym kodzie - wysłać e-mail w oparciu o kraje. Oznacza to, że muszę tworzyć polecenia z if i select. Dobrze? Usunąłem już załącznik z e-maila. Zamiast tego chciałbym dodać link ze ścieżką do folderu. Ale po uruchomieniu makra polecenie jest nieprawidłowe :-(
Doceniam każdą pomoc, jak ją tam dodać.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam — Jak mogę dołączyć dane komórki w polu „cc” e-maila?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Brent,
Przypuśćmy, że chcesz uwzględnić wartość w komórce a7 w polu „cc” wiadomości e-mail, wypróbuj poniższy VBA.

Private Sub Workbook_AfterSave (ByVal Success as Boolean)

'Aktualizowany przez Extendoffice 20200628

Dim xOutApp jako obiekt

Dim xMailItem jako obiekt

Dim xName jako ciąg

On Error Resume Next

Ustaw xOutApp = CreateObject("Outlook.Application")

Ustaw xMailItem = xOutApp.CreateItem(0)

xName = Aktywny skoroszyt.Pełna nazwa

Z xMailItem

.To = "Adres e-mail"

.CC = Zakres("a7").Wartość


.Subject = "skoroszyt został zapisany"

.Body = "Cześć" & Chr(13) & Chr(13) & "Plik został zaktualizowany."

.Załączniki.Dodaj xName

.Pokaz

'.wysłać

Kończyć z

Ustaw xMailItem = Nic

Ustaw xOutApp = Nic

End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Szanowni Państwo, czy ktoś może mi pomóc, jestem nowicjuszem w kodowaniu VBA, dokonałem pewnych modyfikacji, ale jak mogę to zrobić wyślij e-mail, jeśli skoroszyt jest zapisany, a nazwa użytkownika jest inna, np. jeśli nazwa użytkownika stacja to polana2, a następnie wyślij e-mail, jeśli skoroszyt jest zapisany, w przeciwnym razie nie wysyłaj.

Dziękuję Ci bardzo za Twoje wsparcie
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Florynie,
Nie rozumiem. Co reprezentuje Twoja nazwa użytkownika?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć crystal, dziękuję za odpowiedź, usernane to usernane środowiska i zrobiłem to, użyłem funkcji if i exit sub.
Dziękuję bardzo.
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL