Siųsti „Excel“ darbaknygę el. Paštu - „Excel“ patarimai

Turinys

Ačiū Katherine, kuri atsiuntė klausimą apie šios savaitės „Excel“ patarimą:

„Excel“ darbalapyje noriu įdėti formos mygtuką, kurį spustelėjus kažkas išsiųs tą patį „Excel“ darbalapį el. Paštu.

Norėdami siųsti visą knygą adresu [email protected] su tam tikra temos eilute, naudokite šią „Excel“ makrokomandą.

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

Yra įrankių juostos piktograma, leidžianti pridėti komandos mygtuką. Atlikite šiuos veiksmus, kad pridėtumėte jį prie esamos įrankių juostos:

  • Rodinys> Įrankių juostos> Tinkinti
  • Spustelėkite komandų skirtuką
  • Laukelyje Kategorija slinkite žemyn iki Valdymo įrankių dėžutė
  • Komandų laukelyje slinkite žemyn iki komandos mygtuko
  • Spustelėkite komandos mygtuką ir vilkite jį aukštyn ir numeskite į esamą įrankių juostą
  • Atmeskite dialogo langą „Customize“ spustelėdami Uždaryti

Dabar, kai turite komandos mygtuko piktogramą: spustelėkite piktogramą. Vilkite darbalapį, kad sukurtumėte mygtuką. Padarykite ją tokią didelę ar mažą, kiek norite. „Excel“ paprašys mygtuko priskirti makrokomandą. Pasirinkite „SendIt“. Spustelėkite ir vilkite, kad mygtuke paryškintumėte žodį 1 mygtukas. Įveskite kažką panašaus į „Siųsti šį failą el. Paštu“. Spustelėkite ne mygtuką ir būsite pasirengę eiti. Jei kada nors reikia iš naujo priskirti prie to mygtuko pridėtą makrokomandą, dešiniuoju pelės mygtuku spustelėkite mygtuką ir pasirinkite priskirti makrokomandą.

Ką daryti, jei turite didelį informacijos sąrašą, kurį norite išplatinti keliems vartotojams, bet norite, kad kiekvienas vartotojas matytų tik savo informaciją? Žemiau pateikiama šiek tiek sudėtingesnė makrokomanda, kuri tai padarys. Dešinėje yra pavyzdinis trijų regionų pardavimo sąrašas.

Prieš rašydami makrokomandą, nustatykite darbaknygę taip:

  • Nukopijuokite duomenų darbalapį, dešiniuoju pelės mygtuku spustelėkite duomenų skirtuką, pasirinkite „perkelti arba kopijuoti“, pažymėkite „sukurti kopiją“, gerai. Pervardykite šį naują darbalapį „Ataskaita“. Galite pervadinti lapą dešiniuoju pelės mygtuku spustelėdami skirtuką, pasirinkdami „pervadinti“, tada įrašydami „Ataskaita“.
  • Ataskaitos skirtuke ištrinkite visas duomenų eilutes. Saugokite tik antraštes ir pavadinimus.
  • Įterpkite naują darbalapį su šiais stulpeliais: Regionas, Gavėjas. Šiame darbalapyje įveskite kiekvieno regiono pavadinimą ir vartotoją, kuris turėtų gauti ataskaitą. Pervardykite šį darbalapį „Platinimas“.

Čia yra makrokomanda. Eilutės, prasidedančios apostrofais ('), yra komentarai, skirti padėti jums sekti srautą.

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

Įdomios straipsniai...