Wyślij skoroszyt programu Excel w wiadomości e-mail - wskazówki dotyczące programu Excel

Spisie treści

Podziękowania dla Katherine, która wysłała pytanie dotyczące wskazówki dotyczącej programu Excel w tym tygodniu:

Chcę umieścić przycisk formularza w arkuszu programu Excel, który po kliknięciu wyśle ​​do kogoś ten sam arkusz programu Excel.

Aby wysłać całą książkę na adres [email protected] z określonym tematem, użyj tego makra programu Excel.

Sub SendIt() Application.Dialogs(xlDialogSendMail).Show arg1:="[email protected]", _ arg2:="This goes in the subject line" End Sub

Na pasku narzędzi znajduje się ikona, która umożliwia dodanie przycisku polecenia. Wykonaj następujące kroki, aby dodać go do istniejącego paska narzędzi:

  • Widok> Paski narzędzi> Dostosuj
  • Kliknij kartę poleceń
  • W polu Kategoria przewiń w dół do Control Toolbox
  • W polu poleceń przewiń w dół do przycisku polecenia
  • Kliknij przycisk polecenia, przeciągnij go w górę i upuść na istniejącym pasku narzędzi
  • Zamknij okno dialogowe Dostosuj, naciskając Zamknij

Teraz, gdy masz już ikonę przycisku polecenia: Kliknij ikonę. Przeciągnij po arkuszu, aby utworzyć przycisk. Zrób tak duży lub tak mały, jak chcesz. Excel poprosi Cię o przypisanie makra do przycisku. Wybierz SendIt. Kliknij i przeciągnij, aby podświetlić słowo Przycisk 1 na przycisku. Wpisz na przykład „Wyślij ten plik pocztą e-mail”. Kliknij poza przyciskiem i gotowe. Jeśli kiedykolwiek zajdzie potrzeba ponownego przypisania makra dołączonego do tego przycisku, kliknij przycisk prawym przyciskiem myszy i wybierz przypisanie makra.

Co zrobić, jeśli masz dużą listę informacji, które chcesz rozesłać do wielu użytkowników, ale chcesz, aby każdy z nich widział tylko swoje informacje? Poniżej znajduje się nieco bardziej złożone makro, które to zrobi. Po prawej stronie znajduje się przykładowa lista sprzedaży dla trzech regionów.

Przed napisaniem makra skonfiguruj skoroszyt w następujący sposób:

  • Skopiuj arkusz danych, klikając prawym przyciskiem myszy kartę danych, wybierz „przenieś lub kopiuj”, zaznacz „utwórz kopię”, OK. Zmień nazwę tego nowego arkusza na „Raport”. Możesz zmienić nazwę arkusza, klikając kartę prawym przyciskiem myszy, wybierając opcję „zmień nazwę”, a następnie wpisując Raport.
  • Na karcie raportu usuń wszystkie wiersze danych. Zachowaj tylko nagłówki i tytuły.
  • Wstaw nowy arkusz z tymi kolumnami: Region, Odbiorca. W tym arkuszu wpisz nazwę każdego regionu i użytkownika, który powinien otrzymać raport. Zmień nazwę tego arkusza na „Dystrybucja”.

Oto makro. Wiersze zaczynające się od apostrofów (') to komentarze zaprojektowane, aby pomóc ci śledzić nurt.

Public Sub SendItAll() ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Sort data by region Sheets("Data").Select Range("A1").CurrentRegion.Select Selection.Sort Key1:=Range("A2"), Header:=xlYes ' Process each record on Distribution Sheets("Distribution").Select FinalRow = Range("A15000").End(xlUp).Row For i = 2 To FinalRow Sheets("Distribution").Select RegionToGet = Range("A" & i).Value Recipient = Range("B" & i).Value ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Get records from Data Sheets("Data").Select Range("A1").CurrentRegion.Select ' Turn on AutoFilter, if it is not on If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter ' Filter the data to just this region Selection.AutoFilter Field:=1, Criteria1:=RegionToGet ' Select only the visible cells and copy to Report Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Destination:=Sheets("Report").Range("A1") ' Turn off the Autofilter Selection.AutoFilter ' Copy the Report sheet to a new book and e-mail Sheets("Report").Copy Application.Dialogs(xlDialogSendMail).Show _ arg1:=Recipient, _ arg2:="Report for " & RegionToGet ActiveWorkbook.Close SaveChanges:=False Next i End Sub

Interesujące artykuły...