Come automatizzare la stampa unione tramite VBA in Microsoft Excel

Anonim

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.