E-mail küldése egy Excel munkafüzethez - Excel tippek

Tartalomjegyzék

Köszönet Katherine-nek, aki elküldte a kérdést az e heti Excel-tipphez:

Egy űrlapgombot szeretnék elhelyezni egy Excel munkalapon, amelyre kattintva ugyanezt az Excel munkalapot elküldi valakinek.

Ha az egész könyvet a [email protected] címre szeretné elküldeni egy adott tárgysorral, használja ezt az Excel makrót.

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

Van egy eszköztár ikon, amely lehetővé teszi a parancs gomb hozzáadását. Kövesse az alábbi lépéseket, ha hozzá szeretné adni egy meglévő eszköztárhoz:

  • Nézet> Eszköztárak> Testreszabás
  • Kattintson a Parancsok fülre
  • A Kategória mezőben görgessen le a Vezérlő eszköztárhoz
  • A Parancsok mezőben görgessen le a Parancs gombra
  • Kattintson a parancs gombra, majd húzza felfelé és dobja be egy meglévő eszközsorra
  • A Bezárás gombra kattintva utasítsa el a Testreszabás párbeszédpanelt

Most, hogy megvan a parancs gomb ikonja: Kattintson az ikonra. Húzza a munkalapot a gomb létrehozásához. Készítsen akkorát vagy olyan kicsi, amennyit csak akar. Az Excel megkéri, hogy rendeljen makrót a gombhoz. Válassza a SendIt lehetőséget. Kattintson és húzza a gomb 1 szó kiemeléséhez. Írjon be valami olyat, mint "E-mailben küldje el ezt a fájlt". Kattintson a gombra, és készen áll az indulásra. Ha valaha át kell rendelnie a gombhoz csatolt makrót, kattintson a jobb gombbal a gombra, és válassza a makró hozzárendelését.

Mi van, ha van egy nagy listája az információkról, amelyeket el akar terjeszteni számos felhasználó számára, de azt szeretné, ha minden felhasználó csak a saját adatait látná? Az alábbiakban egy kissé összetettebb makró található, amely ezt meg fogja tenni. A jobb oldalon található egy minta lista az eladásokról három régió számára.

A makró megírása előtt állítsa be a munkafüzetet az alábbiak szerint:

  • Másolja az adatlapot az egér jobb gombjával az adat fülre kattintva, válassza az "áthelyezés vagy másolás" lehetőséget, jelölje be a "másolat létrehozása" lehetőséget, OK. Nevezze át az új munkalapot "Jelentés" néven. Átnevezhet egy lapot, ha jobb gombbal kattint a fülre, kiválasztja az "átnevezés" lehetőséget, majd beírja a Jelentés parancsot.
  • A Jelentés lapon törölje az összes adatsort. Csak a címsorokat és a címeket őrizze meg.
  • Helyezzen be egy új munkalapot a következő oszlopokkal: Régió, Címzett. Ezen a munkalapon írja be az egyes régiók nevét és a felhasználót, akinek meg kell kapnia a jelentést. Nevezze át ezt a munkalapot "Terjesztés" névre.

Itt van a makró. Az aposztrófokkal kezdődő sorok (') azok a megjegyzések, amelyek célja a folyamat követése.

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

érdekes cikkek...