E-mail en Excel-projektmappe - Excel-tip

Indholdsfortegnelse

Tak til Katherine, der sendte spørgsmålet til denne uges Excel-tip:

Jeg vil placere en formularknap på et Excel-regneark, der, når der klikkes på, sender det samme Excel-regneark til nogen.

Hvis du vil sende hele bogen til [email protected] med en bestemt emnelinje, skal du bruge denne Excel-makro.

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

Der er et værktøjslinjeikon, der giver dig mulighed for at tilføje en kommandoknap. Følg disse trin for at føje det til en eksisterende værktøjslinje:

  • Vis> Værktøjslinjer> Tilpas
  • Klik på fanen kommandoer
  • I boksen Kategori skal du rulle ned til Kontrolværktøjskasse
  • Rul ned til kommandoknappen i kommandofeltet
  • Klik på kommandoknappen, træk den op og slip den på en eksisterende værktøjslinje
  • Afvis dialogboksen Tilpas ved at trykke på Luk

Nu hvor du har kommandoknapikonet: Klik på ikonet. Træk dit regneark ind for at oprette knappen. Gør det så stort eller så lille, som du vil. Excel beder dig om at tildele en makro til knappen. Vælg SendIt. Klik og træk for at fremhæve ordet Knap 1 på knappen. Skriv noget som "E-mail denne fil". Klik uden for knappen, så er du klar til at gå. Hvis du nogensinde har brug for at omfordele makroen, der er knyttet til den knap, skal du højreklikke på knappen og vælge tildele makro.

Hvad hvis du har en stor liste med oplysninger, som du vil distribuere til et antal brugere, men du kun ønsker, at hver bruger skal se sine egne oplysninger? Nedenfor er en lidt mere kompleks makro, som vil gøre dette. Til højre er en prøveoversigt over salg for tre regioner.

Inden du skriver makroen, skal du oprette projektmappen som følger:

  • Kopier dataarket ved at højreklikke på datafanen, vælg "flyt eller kopier", marker "Opret en kopi", OK. Omdøb dette nye regneark til "Rapport". Du kan omdøbe et ark ved at højreklikke på fanen, vælge "omdøb" og derefter skrive Rapport.
  • Slet alle datarækkerne på rapportfanen. Opbevar kun overskrifter og titler.
  • Indsæt et nyt regneark med disse kolonner: Region, Modtager. Skriv hvert regionnavn og den bruger, der skal modtage rapporten, på dette regneark. Omdøb dette regneark til "Distribution".

Her er makroen. Linjer, der starter med apostrofer ('), er kommentarer designet til at hjælpe dig med at følge strømmen.

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

Interessante artikler...