Stampa di dati da diversi fogli che utilizzano VBA in Microsoft Excel
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 richiesto e specificare il nome, l’intervallo o la visualizzazione personalizzata.
Abbiamo creato una visualizzazione 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 di 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, dobbiamo specificare il nome della visualizzazione personalizzata.
Spiegazione del codice
Per ogni cella1 nell’intervallo (“A13”, ActiveCell.End (xlDown))
Il codice precedente 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 caso Cell1.Value Case 1 ‘Selezione del foglio definito Sheets (DefinedName) .Seleziona Case 2′ Selezione dell’intervallo definito Application.Goto Reference: = DefinedName Case 3 ‘Selezione della vista personalizzata definita ActiveWorkbook.CustomViews (DefinedName) .Mostra Fine Seleziona L’istruzione Select precedente viene utilizzata per selezionare l’area specificata in base al tipo definito dall’utente.
ActiveWindow.SelectedSheets.PrintOut Il codice precedente viene utilizzato per stampare l’area selezionata.
Segui sotto per il codice
Option Explicit Sub PrintReports() 'Declared variables Dim DefinedName As String Dim Cell1 As Range 'Disabling screen updates Application.ScreenUpdating = False 'Looping through all the cells For Each Cell1 In Range("A13", ActiveCell.End(xlDown)) Sheets("Main").Activate 'Selecting the cell Cell1.Select 'Getting value of sheet name or defined range DefinedName = ActiveCell.Offset(0, 1).Value Select Case Cell1.Value Case 1 'Selecting the defined sheet Sheets(DefinedName).Select Case 2 'Selecting the defined range Application.Goto Reference:=DefinedName Case 3 'Selecting the defined custom view ActiveWorkbook.CustomViews(DefinedName).Show End Select 'Printing the required data ActiveWindow.SelectedSheets.PrintOut Next Application.ScreenUpdating = True End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]