Lähetä Excel-työkirja sähköpostilla - Excel-vinkkejä

Sisällysluettelo

Kiitos Katherine, joka lähetti kysymyksen tämän viikon Excel-vinkistä:

Haluan sijoittaa lomakepainikkeen Excel-laskentataulukkoon, joka napsauttamalla lähettää saman Excel-laskentataulukon jollekin.

Jos haluat lähettää koko kirjan osoitteeseen [email protected] tietyllä aiherivillä, käytä tätä Excel-makroa.

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

On työkalurivin kuvake, jonka avulla voit lisätä komentopainikkeen. Lisää se olemassa olevalle työkaluriville seuraavasti:

  • Näytä> Työkalurivit> Mukauta
  • Napsauta komentojen välilehteä
  • Vieritä Luokka-ruudussa alaspäin Ohjaustyökalut-kohtaan
  • Vieritä komentoruudussa alas komentopainike
  • Napsauta komentopainiketta ja vedä se ylös ja pudota se olemassa olevalle työkaluriville
  • Hylkää Mukauta-valintaikkuna napsauttamalla Sulje

Nyt kun sinulla on komentopainikkeen kuvake: Napsauta kuvaketta. Luo painike vetämällä laskentataulukossa. Tee siitä niin iso tai pieni kuin haluat. Excel pyytää sinua määrittämään painikkeelle makron. Valitse SendIt. Korosta painikkeessa sana Painike 1 napsauttamalla ja vetämällä. Kirjoita jotain "Lähetä tämä tiedosto sähköpostitse". Napsauta painikkeen ulkopuolella ja olet valmis menemään. Jos sinun on koskaan määritettävä kyseiseen painikkeeseen liitetty makro uudelleen, napsauta hiiren kakkospainikkeella painiketta ja valitse Määritä makro.

Entä jos sinulla on laaja luettelo tiedoista, jotka haluat jakaa useille käyttäjille, mutta haluat vain, että jokainen käyttäjä näkee omat tietonsa? Alla on hieman monimutkaisempi makro, joka tekee tämän. Oikealla on esimerkkiluettelo kolmen alueen myynnistä.

Määritä työkirja ennen makron kirjoittamista seuraavasti:

  • Kopioi tietotaulukko napsauttamalla hiiren kakkospainikkeella data-välilehteä, valitsemalla "siirrä tai kopioi", tarkista "luo kopio", OK. Nimeä tämä uusi laskentataulukko uudelleen nimellä "Raportti". Voit nimetä taulukon uudelleen napsauttamalla välilehteä hiiren kakkospainikkeella, valitsemalla "nimeä uudelleen" ja kirjoittamalla sitten Raportti.
  • Poista raportti-välilehdessä kaikki tietorivit. Säilytä vain otsikot ja otsikot.
  • Lisää uusi laskentataulukko, jossa on nämä sarakkeet: Alue, Vastaanottaja. Kirjoita tähän laskentataulukkoon kunkin alueen nimi ja käyttäjä, jonka pitäisi saada raportti. Nimeä tämä laskentataulukko uudelleen nimellä "Jakelu".

Tässä on makro. Apostrofeilla (') alkavat rivit ovat kommentteja, jotka on suunniteltu auttamaan sinua seuraamaan kulkua.

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

Mielenkiintoisia artikkeleita...