Pošaljite Excel radnu knjigu e-poštom - Excel savjeti

Sadržaj

Hvala Katherine koja je poslala pitanje za ovotjedni Excel savjet:

Želim postaviti gumb obrasca na Excel radni list koji će, kad se klikne, poslati isti Excel radni list nekome.

Da biste poslali cijelu knjigu na [email protected] s određenim naslovom, koristili biste ovu makronaredbu Excel.

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

Postoji ikona alatne trake koja vam omogućuje dodavanje naredbenog gumba. Slijedite ove korake da biste ga dodali na postojeću alatnu traku:

  • Pogled> Alatne trake> Prilagodi
  • Kliknite karticu naredbi
  • U okviru Kategorija pomaknite se prema dolje do Control Toolbox
  • U okviru naredbi pomaknite se do gumba naredbe
  • Kliknite naredbeni gumb, povucite ga prema gore i ispustite na postojeću alatnu traku
  • Odbacite dijaloški okvir Prilagodi pritiskom na Zatvori

Sada kada imate ikonu naredbenog gumba: Kliknite ikonu. Povucite svoj radni list da biste stvorili gumb. Neka bude onoliko veliko ili malo koliko želite. Excel će zatražiti da gumbu dodijelite makronaredbu. Odaberite SendIt. Kliknite i povucite da biste označili riječ Gumb 1 na gumbu. Upišite nešto poput "Pošaljite ovu datoteku e-poštom". Kliknite izvan gumba i spremni ste za polazak. Ako ikada budete trebali dodijeliti makronaredbu pridruženu tom gumbu, kliknite desnu tipku miša i odaberite dodijeli makronaredbu.

Što ako imate velik popis informacija koje želite distribuirati određenom broju korisnika, ali želite da svaki korisnik vidi samo svoje podatke? Ispod je malo složenija makronaredba koja će to učiniti. S desne strane nalazi se uzorak popisa prodaje za tri regije.

Prije pisanja makronaredbe, postavite radnu knjigu na sljedeći način:

  • Kopirajte radni list podataka desnim klikom na karticu s podacima, odaberite "premjesti ili kopiraj", označite "izradi kopiju", U redu. Preimenujte ovaj novi radni list u "Izvještaj". List možete preimenovati desnim klikom na karticu, odabirom "preimenovati", a zatim tipkanjem Report.
  • Na kartici izvješća izbrišite sve retke podataka. Zadržite samo naslove i naslove.
  • Umetnite novi radni list s ovim stupcima: Regija, Primatelj. Na ovom radnom listu upišite ime svake regije i korisnika koji bi trebao dobiti izvješće. Preimenujte ovaj radni list u "Distribucija".

Evo makronaredbe. Redovi koji počinju apostrofima (') su komentari osmišljeni kako bi vam pomogli pratiti tok.

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

Zanimljivi članci...