Stampa di dati da fogli diversi utilizzando VBA in Microsoft Excel

Anonim

In questo articolo creeremo una macro per stampare dati da fogli diversi.

Abbiamo diversi dati grezzi in due fogli e vogliamo personalizzare la stampa da questi fogli.

Prima di eseguire la macro, dobbiamo specificare il tipo di stampa richiesta e specificare il nome, l'intervallo o la visualizzazione personalizzata.

Abbiamo creato una vista personalizzata "customView1".

Spiegazione logica

Abbiamo creato la macro “PrintReports” per la stampa personalizzata. Questa macro eseguirà un ciclo a partire dalla cella A13 fino all'ultima riga. Possiamo specificare tre diversi tipi per la stampa personalizzata.

Per il tipo 1, dobbiamo specificare il nome del foglio nella colonna successiva.

Per il tipo 2, dobbiamo specificare l'intervallo per il quale vogliamo la stampa.

Per il tipo 3, è necessario specificare il nome della visualizzazione personalizzata.

Spiegazione del codice

Per ogni cella1 nell'intervallo ("A13", ActiveCell.End(xlDown))

Il codice sopra viene utilizzato per eseguire il ciclo a partire dalla cella A13 fino all'ultima riga.

DefinedName = ActiveCell.Offset(0, 1).Value

Il codice sopra viene utilizzato per ottenere il valore dalla cella nella colonna successiva dalla cella attiva.

Seleziona Case Cell1.Value

Caso 1

'Selezione del foglio definito

Fogli (nome definito).Seleziona

Caso 2

'Selezione dell'intervallo definito

Riferimento Application.Goto:=DefinedName

Caso 3

'Selezione della vista personalizzata definita

ActiveWorkbook.CustomViews(DefinedName).Show

Fine selezione

L'istruzione Select di cui sopra viene utilizzata per selezionare l'area specificata in base al tipo definito dall'utente.

ActiveWindow.SelectedSheets.PrintOut

Il codice sopra viene utilizzato per stampare l'area selezionata.

Si prega di seguire sotto per il codice

 Option Explicit Sub PrintReports() 'Variabili dichiarate Dim DefinedName As String Dim Cell1 As Range 'Disabilitazione degli aggiornamenti dello schermo Application.ScreenUpdating = False 'Esplora tutte le celle per ogni Cell1 In Range("A13", ActiveCell.End(xlDown)) Sheets ("Principale"). Attiva 'Selezione della cella Cell1.Select 'Ottenimento del valore del nome del foglio o dell'intervallo definito DefinedName = ActiveCell.Offset(0, 1).Value Select Case Cell1.Value Case 1 'Selezione del foglio definito Sheets(DefinedName ).Select Case 2 'Selezione dell'intervallo definito Application.Goto Reference:=DefinedName Caso 3 'Selezione della vista personalizzata definita ActiveWorkbook.CustomViews(DefinedName).Show End Select 'Stampa dei dati richiesti ActiveWindow.SelectedSheets.PrintOut Next Application.ScreenUpdating = True End Sub 

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.

Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica