Come automatizzare la stampa unione con VBA in Microsoft Excel
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.
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.
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
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.
-
E poi otterrai il documento mostrato sotto
-
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.