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.
![](https://cdn.wiki-base.com/1870674/email_an_excel_workbook_-_excel_tips.gif)
Š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:
![](https://cdn.wiki-base.com/1870674/email_an_excel_workbook_-_excel_tips_2.gif)
- 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.
![](https://cdn.wiki-base.com/1870674/email_an_excel_workbook_-_excel_tips_3.gif)
- 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