Jak zautomatyzować korespondencję seryjną za pomocą VBA w programie Microsoft Excel

Spisie treści

W tym artykule dowiemy się, jak zautomatyzować korespondencję seryjną za pomocą VBA w programie Microsoft Excel.

Korespondencja seryjna: - jest to źródło scalania informacji z danych w tekst, a następnie drukowania dokumentu. Do wykonania takiej operacji wykorzystujemy Microsoft Word.

Zrozummy za pomocą prostego ćwiczenia:-

W arkuszu raportu mamy format listu i chcemy zastosować korespondencję seryjną za pośrednictwem VBA, w której chcemy również zmienić szczegóły listu.

Mamy 2 arkusze. 1 arkusz zawiera dane z danymi do kogo chcemy przekazać listy. W pierwszych danych kolumna A zawiera nazwę, kolumna B zawiera adres pocztowy, kolumna C zawiera miasto, kolumna D region, a kolumna E i kolumna F zawierają kod pocztowy. W arkuszu raportu jest jeden przycisk polecenia.

2NS arkusz ma format literowy z 2 przyciskami poleceń; jeden przycisk do poruszania się po arkuszu danych, a drugi przycisk polecenia służy do korespondencji seryjnej

Najpierw napiszemy kod VBA dla przycisku polecenia danych głównych. Musimy wykonać poniższe kroki:-

  • Najpierw wstawimy przycisk polecenia w arkuszu.
  • Przejdź do zakładki Deweloper, a następnie wstaw przycisk Polecenie z Activexcontrol.
  • Zmień nazwę przycisku polecenia na „Litera” , a teraz przypisz poniższe makro:-

Prywatna sub Main_data_Click()

Arkusze ("Raport"). Aktywuj

Zakres ("A19"). Pokaż

Napis końcowy

Teraz wstawimy drugi przycisk polecenia w arkuszu Raport i przypiszemy makro do poruszania się po pierwszym arkuszu. Musimy wykonać poniższe kroki:-

  • Zmień nazwę przycisku polecenia na „Dane” i przypisz poniższe makro:-

Prywatna Sub CommandButton2_Click()

Arkusze ("Main_Data"). Aktywuj

Zakres ("A1"). Pokaż

Napis końcowy

Teraz napiszemy główny kod korespondencji seryjnej, wykonując poniższe czynności:-

Wstaw przycisk polecenia i zmień jego nazwę na „Drukowanie listu”, a następnie przypisz poniższy kod:-

Prywatna Sub CommandButton1_Click()

Dim StartrowAs Integer, lastrow As Integer

Dim MsgAs String

Dim TotalrecordsAs String

Nazwa dim As String, Street_AddressAs String, miasto As String, region As String, kraj As String, poczta As String

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

Zakres ("L1") = Suma rekordów

Przyciemnij moją datę jako datę

Ustaw WRP = Arkusze("Raport")

mojadata = Data
WRP.Range("A9") = mojadata

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

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

Startrow = InputBox("Wprowadź pierwszy rekord do wydrukowania.")

lastrow = InputBox("Wprowadź ostatni rekord do wydrukowania.")

Jeśli Startrow>lastrow Wtedy

Msg = "BŁĄD" &vbCrLf& "Wiersz początkowy musi być mniejszy niż ostatni"

Msgbox Msg, vbCritical, „ExcelTip”

Zakończ, jeśli

For i = Startrow Do lastrow

name = Arkusze("Główne_dane").Komórki(i, 1)

Street_Address = Arkusze("Główne_dane").Komórki(i, 2)

miasto = Arkusze("Główne_dane").Komórki(i, 3)

region = Arkusze("Główne_dane").Komórki(i, 4)

kraj = Arkusze("Główne_dane").Komórki(i, 5)

pocztowy = Arkusze("Główne_dane").Komórki(i, 6)

Arkusze("Raport").Zakres("A7") = nazwa &vbCrLf&Street_Address&vbCrLf& miasto i region & kraj &vbCrLf& poczta

Arkusze("Raport").Range("A11") = "Szanowni Państwo" & " " & nazwa & ","

Pole wyboru1 = Prawda

Jeśli pole wyboru 1 to

ActiveSheet.Podgląd wydruku

W przeciwnym razie

Aktywny arkusz.Wydruk

Zakończ, jeśli

Dalej ja

Napis końcowy

Objaśnienie kodu: - Najpierw zdefiniujemy zmienne, następnie zdefiniujemy datę i format daty, następnie zdefiniujemy ostatni wiersz i wiersz początkowy. Następnie stworzyliśmy skrzynkę wiadomości do przesłania wiadomości. Następnie zdefiniujemy dane i zakres, który chcemy uchwycić literowo.

  • Aby uruchomić kod, naciśnij klawisz F5 na klawiaturze.
  • Następnie musisz wpisać pierwszy punkt rekordowy. Następnie otrzymasz nowe okno wiadomości, aby wprowadzić ostatni rekord punktu.

  • A następnie otrzymasz pokazany poniżej dokument

  • List zostanie zaktualizowany zgodnie ze szczegółami wymienionymi w danych głównych.

W ten sposób możemy zautomatyzować korespondencję seryjną za pomocą VBA w programie Microsoft Excel.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave