Pošljite Excel po e-pošti - nasveti za Excel

Kazalo

Hvala Katherine, ki je poslala vprašanje za ta tedenski namig v Excelu:

Gumb za obrazec želim postaviti na Excelov delovni list, ki bo ob kliku isti Excelov delovni list nekomu poslal po e-pošti.

Če želite poslati celo knjigo na [email protected] z določeno vrstico teme, uporabite ta makro v Excelu.

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

Ikona orodne vrstice vam omogoča dodajanje ukaznega gumba. Če ga želite dodati v obstoječo orodno vrstico, sledite tem korakom:

  • Pogled> Orodne vrstice> Prilagodi
  • Kliknite jeziček ukazi
  • V polju Kategorija se pomaknite navzdol do Control Toolbox
  • V polju za ukaze se pomaknite navzdol do gumba za ukaze
  • Kliknite ukazni gumb, ga povlecite navzgor in spustite v obstoječo orodno vrstico
  • Opustite pogovorno okno Prilagodi, tako da pritisnete Zapri

Zdaj, ko imate ikono ukaznega gumba: Kliknite ikono. Povlecite na delovnem listu, da ustvarite gumb. Naj bo tako velika ali majhna, kot želite. Excel vas bo pozval, da gumbu dodelite makro. Izberite SendIt. Kliknite in povlecite, da označite besedo Gumb 1 na gumbu. Vnesite nekaj takega kot »Pošlji to datoteko po e-pošti«. Kliknite zunaj gumba in že ste pripravljeni. Če boste kdaj morali znova dodeliti makro, pritrjen na ta gumb, z desno miškino tipko kliknite gumb in izberite dodelitev makra.

Kaj če imate velik seznam informacij, ki jih želite razširiti številnim uporabnikom, vendar želite, da vsak uporabnik vidi samo svoje podatke? Spodaj je nekoliko bolj zapleten makro, ki bo to naredil. Na desni je vzorčni seznam prodaje za tri regije.

Pred pisanjem makra nastavite delovni zvezek na naslednji način:

  • Kopirajte podatkovni list tako, da z desno miškino tipko kliknete jeziček s podatki, izberete »premakni ali kopiraj«, označite »ustvari kopijo«, v redu. Preimenujte ta novi delovni list v "Poročilo". List lahko preimenujete tako, da z desno miškino tipko kliknete jeziček, izberete »preimenuj« in nato vnesete Poročilo.
  • Na zavihku poročila izbrišite vse vrstice s podatki. Hranite samo naslove in naslove.
  • Vstavite nov delovni list s temi stolpci: Regija, Prejemnik. Na ta delovni list vnesite ime vsake regije in uporabnika, ki naj prejme poročilo. Preimenujte ta delovni list v "Distribucija".

Tu je makro. Vrstice, ki se začnejo z apostrofi ('), so komentarji, ki vam pomagajo slediti toku.

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

Zanimive Članki...