Send en Excel-arbeidsbok via e-post - Excel-tips

Innholdsfortegnelse

Takk til Katherine som sendte spørsmålet til ukens Excel-tips:

Jeg vil plassere en skjema-knapp på et Excel-regneark som, når du klikker på, vil sende det samme Excel-regnearket til noen.

For å sende hele boka til [email protected] med en bestemt emnelinje, vil du bruke denne Excel-makroen.

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

Det er et verktøylinjeikon som lar deg legge til en kommandoknapp. Følg disse trinnene for å legge den til en eksisterende verktøylinje:

  • Vis> Verktøylinjer> Tilpass
  • Klikk på kommandofanen
  • I kategoriboksen blar du ned til Kontrollverktøykasse
  • I kommandoboksen blar du ned til Kommando-knapp
  • Klikk på kommandoknappen og dra den opp og slipp den på en eksisterende verktøylinje
  • Avvis dialogboksen Tilpass ved å trykke på Lukk

Nå som du har kommandoknappikonet: Klikk på ikonet. Dra i regnearket for å lage knappen. Gjør den så stor eller så liten du vil. Excel vil be deg om å tilordne en makro til knappen. Velg SendIt. Klikk og dra for å markere ordet Knapp 1 på knappen. Skriv inn noe sånt som "Send denne filen via e-post". Klikk utenfor knappen, så er du klar. Hvis du noen gang trenger å tildele makroen som er knyttet til den knappen på nytt, høyreklikker du på knappen og velger tilordne makro.

Hva om du har en stor liste med informasjon som du vil distribuere til et antall brukere, men du bare vil at hver bruker skal se sin egen informasjon? Nedenfor er en litt mer kompleks makro som vil gjøre dette. Til høyre er en utvalgsliste over salg for tre regioner.

Før du skriver makroen, sett opp arbeidsboken slik:

  • Kopier dataarket ved å høyreklikke på datafanen, velg "flytt eller kopier", kryss av for "opprett en kopi", OK. Gi nytt navn til dette nye regnearket til "Rapport". Du kan gi nytt navn til et ark ved å høyreklikke på fanen, velge "endre navn" og deretter skrive Rapport.
  • Slett alle dataradene i rapportfanen. Behold bare overskriftene og titlene.
  • Sett inn et nytt regneark med disse kolonnene: Region, mottaker. På dette regnearket skriver du inn hvert regionnavn og brukeren som skal motta rapporten. Gi dette regnearket navnet "Distribusjon".

Her er makroen. Linjer som starter med apostrofer (') er kommentarer designet for å hjelpe deg med å følge flyten.

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...