Microsoft Excel'de VBA aracılığıyla Adres Mektup Birleştirme Nasıl Otomatikleştirilir

Anonim

Bu yazıda, Microsoft Excel'de VBA kullanarak adres mektup birleştirmenin nasıl otomatikleştirileceğini öğreneceğiz.

Adres Mektup Birleştirme: - Bu, veri bilgilerini metin halinde birleştirmek ve ardından belgeyi yazdırmak için kullanılan kaynaktır. Böyle bir işlemi gerçekleştirmek için Microsoft Word kullanıyoruz.

Basit bir alıştırma ile anlayalım: -

Rapor sayfasında bir mektup biçimimiz var ve mektup ayrıntılarını da değiştirmek istediğimiz VBA üzerinden adres mektup birleştirme uygulamak istiyoruz.

2 yaprağımız var. 1 sayfa, mektup vermek istediğimiz ayrıntıları içeren verileri içerir. İlk verilerde A sütunu Ad'ı, B sütunu sokak adresini, C sütunu şehri, D sütunu bölgesini ve E sütunu ile F sütunu posta postasını içerir. Rapor sayfasında hareket etmek için bir komut düğmesi vardır.

2nd sayfa 2 komut butonlu harf formatına sahip; veri sayfasında hareket etmek için bir düğme ve adres mektup birleştirme için çalışmak için ikinci komut düğmesi

İlk olarak Main Data komut butonunun VBA kodunu yazacağız. Aşağıda verilen adımları izlememiz gerekiyor: -

  • İlk önce çalışma sayfasına komut butonunu ekleyeceğiz.
  • Geliştirici sekmesine gidin ve ardından Activexcontrol'den Komut düğmesini ekleyin.
  • Komut düğmesini “Harf” adıyla yeniden adlandırın ve şimdi aşağıda belirtilen makroyu atayın: -

Özel Alt Main_data_Click()

Çalışma Sayfaları("Rapor").Etkinleştir

Aralık("A19").Göster

Alt Bitiş

Şimdi Rapor sayfasına ikinci komut butonunu ekleyeceğiz ve makroyu ilk sayfada hareket edecek şekilde atayacağız. Aşağıda verilen adımları izlememiz gerekiyor: -

  • Komut düğmesini “Veri” adıyla yeniden adlandırın ve aşağıda belirtilen makroyu atayın: -

Özel Alt KomutDüğmesi2_Click()

Worksheets("Main_Data").Etkinleştir

Aralık("A1").Göster

Alt Bitiş

Şimdi aşağıdaki adımları izleyerek adres mektup birleştirme için ana kodu yazacağız: -

Komut düğmesini ekleyin ve “Mektup Baskı” olarak yeniden adlandırın ve ardından aşağıda belirtilen kodu atayın: -

Özel Alt KomutDüğmesi1_Click()

Dim StartrowAs Integer, lastrow As Integer

MsgAs Dizesini Karartın

Dim TotalrecordsAs String

Dim name As String, Street_AddressAs String, şehir As String, bölge As String, ülke As String, posta As String

Totalrecords = "=counta(Main_Data!A:A)"

Aralık("L1") = Toplam Kayıtlar

Tarih olarak karart mydate

WRP'yi Ayarla = Sayfalar ("Rapor")

tarih = tarih
WRP.Range("A9") = tarihim

WRP.Range("A9").NumberFormat = "[$-F800]dddd,aaa,gg,yyyy"

WRP.Range("A9").Yatay Hizalama = xlSol

Startrow = InputBox("Yazdırılacak ilk kaydı girin.")

lastrow = InputBox("Yazdırılacak son kaydı girin.")

Startrow>lastrow ise

Msg = "ERROR" &vbCrLf& "Başlangıç ​​satırı son satırdan küçük olmalıdır"

Msgbox Msg, vbCritical, "ExcelTip"

Bitir

i için = Startrow Son sıraya

isim = Sayfalar("Ana_veri").Hücreler(i, 1)

Street_Address = Sheets("Main_data").Cells(i, 2)

şehir = Sayfalar("Ana_veri").Hücreler(i, 3)

bölge = Sayfalar("Ana_veri").Hücreler(i, 4)

ülke = Sayfalar("Ana_veri").Hücreler(i, 5)

posta = Sayfalar("Ana_veriler").Hücreler(i, 6)

Sheets("Rapor").Range("A7") = name &vbCrLf&Street_Address&vbCrLf& şehir & bölge & ülke &vbCrLf& posta

Sheets("Rapor").Range("A11") = "Sevgili" & " " & name & ","

CheckBox1 = Doğru

CheckBox1 ise

ActiveSheet.Baskı Önizleme

Başka

ActiveSheet.PrintOut

Bitir

sonraki ben

Alt Bitiş

Kod Açıklama: - Önce değişkenleri tanımlayacağız, sonra tarih ve tarih formatını tanımlayacağız, ardından son satırı tanımlayacağız ve satıra başlayacağız. Ardından mesajı iletmek için mesaj kutusu oluşturduk. Ardından yakalamak istediğimiz veriyi ve aralığı letter olarak tanımlayacağız.

  • Kodu çalıştırmak için klavyede F5 tuşuna basın.
  • O zaman ilk kayıt noktasını girmelisiniz. Bundan sonra, son nokta kaydını girmek için yeni bir mesaj kutusu alacaksınız.

  • Ve sonra aşağıda gösterilen belgeyi alacaksınız

  • Mektup, ana verilerde belirtilen ayrıntılara göre güncellenecektir.

Microsoft Excel'de VBA aracılığıyla adres mektup birleştirmeyi bu şekilde otomatikleştirebiliriz.