Bir Excel Çalışma Kitabını E-postayla Gönderin - Excel İpuçları

İçindekiler

Bu haftanın Excel ipucu için soruyu gönderen Katherine'e teşekkürler:

Excel çalışma sayfasına, tıklandığında aynı Excel çalışma sayfasını birine e-posta ile gönderecek bir form düğmesi yerleştirmek istiyorum.

Kitabın tamamını belirli bir konu satırı ile [email protected] adresine göndermek için, bu Excel makrosunu kullanırsınız.

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

Bir komut düğmesi eklemenizi sağlayan bir araç çubuğu simgesi vardır. Mevcut bir araç çubuğuna eklemek için şu adımları izleyin:

  • Görünüm> Araç Çubukları> Özelleştir
  • Komutlar sekmesine tıklayın
  • Kategori kutusunda, Kontrol Araç Kutusu'na gidin
  • Komutlar kutusunda, Komut Düğmesine gidin
  • Komut düğmesini tıklayın ve yukarı sürükleyin ve mevcut bir araç çubuğuna bırakın
  • Kapat'a basarak Özelleştir iletişim kutusunu kapatın

Artık komut düğmesi simgesine sahip olduğunuza göre: Simgeyi tıklayın. Düğmeyi oluşturmak için çalışma sayfanıza sürükleyin. İstediğiniz kadar büyük veya küçük yapın. Excel sizden düğmeye bir makro atamanızı isteyecektir. SendIt seçin. Düğme üzerindeki Düğme 1 sözcüğünü vurgulamak için tıklayın ve sürükleyin. "Bu Dosyayı E-Posta ile Gönder" gibi bir şey yazın. Düğmenin dışına tıklayın ve gitmeye hazırsınız. Bu düğmeye eklenen makroyu yeniden atamanız gerekirse, düğmeye sağ tıklayın ve makro ata seçeneğini seçin.

Birkaç kullanıcıya dağıtmak istediğiniz geniş bir bilgi listeniz varsa, ancak her kullanıcının yalnızca kendi bilgilerini görmesini istiyorsanız? Aşağıda bunu yapacak biraz daha karmaşık bir makro var. Sağda, üç bölge için örnek bir satış listesi bulunmaktadır.

Makroyu yazmadan önce çalışma kitabını aşağıdaki gibi ayarlayın:

  • Veri sekmesine sağ tıklayarak veri çalışma sayfasını kopyalayın, "taşı veya kopyala" yı seçin, "kopya oluştur" seçeneğini işaretleyin, Tamam. Bu yeni çalışma sayfasını "Rapor" olarak yeniden adlandırın. Sekmeyi sağ tıklayıp "yeniden adlandır" ı seçip ardından Rapor yazarak bir sayfayı yeniden adlandırabilirsiniz.
  • Rapor sekmesinde, tüm veri satırlarını silin. Yalnızca başlıkları ve başlıkları saklayın.
  • Şu sütunlarla yeni bir çalışma sayfası ekleyin: Bölge, Alıcı. Bu çalışma sayfasına, her bölge adını ve raporu alması gereken kullanıcıyı yazın. Bu çalışma sayfasını "Dağıtım" olarak yeniden adlandırın.

İşte makro. Kesme işaretleriyle (') başlayan satırlar, akışı takip etmenize yardımcı olmak için tasarlanmış yorumlardır.

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

Ilginç makaleler...