In questo articolo, impareremo come automatizzare la stampa unione utilizzando VBA in Microsoft Excel.

Stampa unione: – Questa è la fonte per unire le informazioni dei dati in testo e quindi stampare il documento. Per eseguire tale operazione utilizziamo Microsoft Word.

Comprendiamo con un semplice esercizio: – Abbiamo un formato lettera nel foglio Report e vogliamo applicare la stampa unione tramite VBA in cui vogliamo modificare anche i dettagli della lettera.

image 1

Abbiamo 2 fogli. 1 foglio contiene dati con dettagli a chi vogliamo dare lettere. Nei primi dati, la colonna A contiene il nome, la colonna B contiene l’indirizzo, la colonna C contiene la città, la colonna D regione e la colonna E e la colonna F contengono il CAP. C’è un pulsante di comando per spostarsi nel foglio del report.

image 2

Il 2 ^ nd ^ foglio ha il formato lettera con 2 pulsanti di comando; un pulsante per spostarsi sul foglio dati e il secondo pulsante di comando serve per la stampa unione

image 3

In primo luogo, scriveremo il codice VBA per il pulsante di comando di Main Data. Dobbiamo seguire i passaggi indicati di seguito: – * Per prima cosa inseriremo il pulsante di comando nel foglio di lavoro.

  • Vai alla scheda Sviluppatore e quindi inserisci il pulsante di comando da Activexcontrol.

  • Rinomina il pulsante di comando con il nome “Lettera”, e ora assegna la macro indicata di seguito: – Private Sub Main_data_Click ()

Fogli di lavoro (“Report”). Attiva Range (“A19”). Show End Sub Ora, inseriremo il secondo pulsante di comando nel foglio Report e assegneremo la macro per spostarsi sul primo foglio. Dobbiamo seguire i passaggi indicati di seguito: – * Rinomina il pulsante di comando con il nome “Dati” e assegna la macro indicata di seguito: – Sottotitolo privato CommandButton2_Click ()

Fogli di lavoro (“Main_Data”). Attiva intervallo (“A1”). Mostra End Sub Ora scriveremo il codice principale per la stampa unione seguendo i passaggi indicati di seguito: – Inserisci il pulsante di comando e rinominalo come “Letter Print”, quindi assegnare il codice indicato di seguito: – Private Sub CommandButton1_Click ()

Dim StartrowAs Integer, lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String, Street_AddressAs String, city As String, region As String, country As String, postale As String Totalrecords = “= counta (Main_Data! A: A)”

Range (“L1”) = Totalrecords Dim mydate As Date Set WRP = Sheets (“Report”)

mydate = Date WRP.Range (“A9”) = mydate WRP.Range (“A9”). NumberFormat = “[$ -F800] dddd, mmmm, dd, yyyy”

WRP.Range (“A9”). HorizontalAlignment = xlLeft Startrow = InputBox (“Immettere il primo record da stampare.”)

lastrow = InputBox (“Immettere l’ultimo record da stampare.”)

If Startrow> lastrow Then Msg = “ERROR” & vbCrLf & “La riga iniziale deve essere inferiore all’ultima riga”

Msgbox Msg, vbCritical, “ExcelTip”

End If For i = Startrow To lastrow name = Sheets (“Main_data”). Cells (i, 1)

Street_Address = Sheets (“Main_data”). Cells (i, 2)

city ​​= Sheets (“Main_data”). Cells (i, 3)

region = Sheets (“Main_data”). Cells (i, 4)

country = Sheets (“Main_data”). Cells (i, 5)

postale = Fogli (“Main_data”). Celle (i, 6)

Fogli (“Report”). Range (“A7”) = nome & vbCrLf & Street_Address & vbCrLf & città & regione & paese & vbCrLf & fogli postali (“Report”). Range (“A11”) = “Dear” & “” & name & “,”

CheckBox1 = True If CheckBox1 Then ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i End Sub Codice Spiegazione: – Per prima cosa, definiremo le variabili, quindi definiremo la data e il formato della data, quindi definiremo l’ultima riga e la riga iniziale . Quindi abbiamo creato una finestra di messaggio per la trasmissione del messaggio. Quindi definiremo i dati e l’intervallo che vogliamo catturare in lettera.

  • Per eseguire il codice, premere il tasto F5 sulla tastiera.

  • Quindi devi inserire il primo punto di registrazione. Dopodiché, otterrai una nuova finestra di messaggio per inserire l’ultimo record del punto.

image 4

image 5

  • E poi otterrai il documento mostrato sotto

image 6

  • La lettera verrà aggiornata in base ai dettagli menzionati nei dati principali.

Questo è il modo in cui possiamo automatizzare la stampa unione tramite VBA in Microsoft Excel.