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.
Capiamo con un semplice esercizio:-
Abbiamo un formato lettera nel foglio Report e vogliamo applicare la stampa unione tramite VBA in cui vogliamo anche modificare i dettagli della lettera.
Abbiamo 2 fogli. 1 foglio contiene i dati con i dettagli a chi vogliamo dare le lettere. Nei primi dati, la colonna A contiene il nome, la colonna B contiene l'indirizzo, la colonna C contiene la città, la regione della colonna D e la colonna E e la colonna F contengono il CAP. C'è un pulsante di comando da spostare nel foglio del report.
2ns il foglio ha il formato lettera con 2 pulsanti di comando; un pulsante per spostarsi sul foglio dati e il secondo pulsante di comando è lavorare per la stampa unione
Innanzitutto, 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 Comando da Activexcontrol.
- Rinominare il pulsante di comando con il nome "Lettera" e ora assegnare la macro indicata di seguito: -
Sotto privato Main_data_Click()
Fogli di lavoro("Rapporto").Attiva
Intervallo ("A19"). Mostra
Fine sottotitolo
Ora inseriremo il secondo pulsante di comando nel foglio Report e assegneremo la macro da spostare sul primo foglio. Dobbiamo seguire i passaggi indicati di seguito: -
- Rinominare il pulsante di comando con il nome "Dati" e assegnare la macro indicata di seguito: -
Sottocomando privato CommandButton2_Click()
Fogli di lavoro("Main_Data").Attiva
Intervallo ("A1"). Mostra
Fine sottotitolo
Ora scriveremo il codice principale per la stampa unione seguendo i passaggi indicati di seguito: -
Inserisci il pulsante di comando e rinominalo come "Stampa lettera", quindi assegna il codice indicato di seguito: -
Sub CommandButton1_Click privato ()
Dim StartrowAs Integer, lastrow As Integer
Dim MsgAs String
Dim TotalrecordsAs String
Nome dim As String, Street_AddressAs String, città As String, regione As String, paese As String, postale As String
Totalrecords = "=counta(Main_Data!A:A)"
Intervallo("L1") = Totale record
Dim mydate As Date
Imposta WRP = Fogli ("Report")
mydate = Data
WRP.Range("A9") = mia data
WRP.Range("A9").NumberFormat = "[$-F800]gggg,mmmm,gg,aaaa"
WRP.Range("A9").HorizontalAlignment = xlLeft
Startrow = InputBox("Inserisci il primo record da stampare.")
lastrow = InputBox("Inserisci l'ultimo record da stampare.")
Se Startrow> lastrow Allora
Msg = "ERRORE" &vbCrLf& "La riga iniziale deve essere minore dell'ultima riga"
Msgbox Msg, vbCritical, "ExcelTip"
Finisci se
Per i = riga iniziale per ultima riga
name = Sheets("Main_data").Cells(i, 1)
Street_Address = Sheets("Main_data").Cells(i, 2)
città = Fogli("Main_data").Cells(i, 3)
regione = Fogli("Main_data").Cells(i, 4)
country = Sheets("Main_data").Cells(i, 5)
postale = Sheets("Main_data").Cells(i, 6)
Sheets("Report").Range("A7") = nome &vbCrLf&Street_Address&vbCrLf& città & regione & paese &vbCrLf& postale
Fogli("Rapporto").Intervallo("A11") = "Caro" & " " & nome & ","
CheckBox1 = Vero
Se CheckBox1 Allora
ActiveSheet.PrintPreview
Altro
ActiveSheet.PrintOut
Finisci se
Avanti io
Fine sottotitolo
Spiegazione del codice: - In primo luogo, 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 acquisire in lettera.
- Per eseguire il codice, premere il tasto F5 sulla tastiera.
- Quindi devi inserire il primo punto di registrazione. Successivamente, riceverai una nuova finestra di messaggio per inserire l'ultimo record del punto.
- E poi otterrai il documento mostrato di seguito
- La lettera verrà aggiornata secondo i dettagli menzionati nei dati principali.
Questo è il modo in cui possiamo automatizzare la stampa unione tramite VBA in Microsoft Excel.