Kuinka automatisoida yhdistäminen VBA: n kautta Microsoft Excelissä

Anonim

Tässä artikkelissa aiomme oppia automatisoimaan yhdistämisen käyttämällä Microsoft Excelin VBA: ta.

Yhdistäminen: - Tämä on lähde, joka yhdistää tietojen tiedot tekstiksi ja tulostaa asiakirjan. Käytämme tällaista toimintoa Microsoft Wordilla.

Ymmärrämme yksinkertaisella harjoituksella:-

Meillä on raporttimuodossa kirjainmuoto ja haluamme käyttää yhdistämistä VBA: n kautta, jossa haluamme myös muuttaa kirjeen tietoja.

Meillä on 2 arkkia. 1 arkki sisältää tietoja yksityiskohdista, joille haluamme antaa kirjeitä. Ensimmäisissä tiedoissa sarake A sisältää nimen, sarake B sisältää katuosoitteen, sarake C sisältää kaupungin, sarakkeen D alueen ja sarake E ja sarake F sisältävät postinumeron. Raporttilomakkeessa on yksi komentopainike, jota voidaan siirtää.

2toinen arkilla on kirjainmuoto, jossa on 2 komentopainiketta; yksi painike tietolomakkeella siirtymiseen ja toinen komentopainike toimii yhdistämisen yhteydessä

Ensinnäkin kirjoitamme VBA -koodin päädatan komentopainikkeelle. Meidän on noudatettava alla annettuja vaiheita:-

  • Lisäämme ensin komentopainikkeen laskentataulukkoon.
  • Siirry Kehittäjä -välilehdelle ja lisää sitten Activexcontrolin Komento -painike.
  • Nimeä komentopainike uudelleen nimellä "Letter" ja määritä nyt alla mainittu makro:-

Yksityinen osa Main_data_Click ()

Laskentataulukot ("Raportti"). Aktivoi

Alue ("A19"). Näytä

End Sub

Nyt lisäämme toisen komentopainikkeen raportti -taulukkoon ja osoitamme makron siirtymään ensimmäiselle arkille. Meidän on noudatettava alla annettuja vaiheita:-

  • Nimeä komentopainike uudelleen nimellä "Data" ja määritä alla mainittu makro:-

Yksityinen alikomentoButton2_Click ()

Laskentataulukot ("Main_Data"). Aktivoi

Alue ("A1"). Näytä

End Sub

Kirjoitamme nyt yhdistämisen pääkoodin seuraavasti:-

Lisää komentopainike ja nimeä se uudelleen "Letter Printiksi" ja määritä sitten alla mainittu koodi:-

Yksityinen alikomentoButton1_Click ()

Dim StartrowKuten kokonaisluku, viimeinen kokonaisluku

Dim MsgAs -merkkijono

Himmennä TotalrecordsAs String

Himmennettävä nimi merkkijonona, Street_AddressAs -merkkijono, kaupunki merkkijonona, alue merkkijonona, maa merkkijonona, posti merkkijonona

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

Alue ("L1") = Totalrecords

Himmennä päivämäärä päivämääränä

Aseta WRP = Sheets ("Report")

mydate = päivämäärä
WRP.Range ("A9") = mydate

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

WRP.Range ("A9"). HorizontalAlignment = xlLeft

Startrow = InputBox ("Anna ensimmäinen tulostettava tietue.")

lastrow = InputBox ("Anna viimeinen tulostettava tietue.")

Jos Startrow> lastrow Then

Msg = "ERROR" & vbCrLf & "Aloitusrivin on oltava pienempi kuin viimeinen rivi"

Msgbox Msg, vbCritical, "ExcelTip"

Loppu Jos

Sillä i = Aloitusvirta Loppuun

name = Sheets ("Main_data"). Solut (i, 1)

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

city ​​= Sheets ("Main_data"). Solut (i, 3)

region = Sheets ("Main_data"). Solut (i, 4)

maa = Sheets ("Main_data"). Solut (i, 5)

postal = Sheets ("Main_data"). Solut (i, 6)

Sheets ("Raportti"). Alue ("A7") = nimi & vbCrLf & Street_Address & vbCrLf & kaupunki & alue & maa & vbCrLf & posti

Sheets ("Report"). Range ("A11") = "Dear" & "" & name & ","

CheckBox1 = Tosi

Jos valintaruutu1 Sitten

ActiveSheet.PrintPreview

Muu

ActiveSheet.PrintOut

Loppu Jos

Seuraavaksi minä

End Sub

Koodin selitys: - Ensin määritämme muuttujat, sitten päivämäärän ja päivämäärän muodon, sitten viimeisen rivin ja aloitusrivin. Sitten olemme luoneet viestiruudun viestin lähettämistä varten. Sitten määritämme tiedot ja alueen, jonka haluamme kaapata kirjaimella.

  • Voit suorittaa koodin painamalla näppäimistön näppäintä F5.
  • Sitten sinun on syötettävä ensimmäinen tallennuspiste. Tämän jälkeen saat uuden viestiruudun pisteen viimeisen tietueen syöttämiseksi.

  • Ja sitten saat alla olevan asiakirjan

  • Kirje päivitetään päätietojen mainittujen yksityiskohtien mukaisesti.

Tällä tavalla voimme automatisoida yhdistämisen VBA: n kautta Microsoft Excelissä.