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.

ArrowRawFirst

ArrowRawSecond

ArrowMain

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

ArrowCustomView

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]