Impresión de datos de diferentes hojas usando VBA en Microsoft Excel

Anonim

En este artículo, crearemos una macro para imprimir datos de diferentes hojas.

Tenemos diferentes datos en bruto en dos hojas y queremos personalizar la impresión a partir de estas hojas.

Antes de ejecutar la macro, tenemos que especificar el tipo de impresión requerida y especificar el nombre, rango o vista personalizada.

Hemos creado una vista personalizada "customView1".

Explicación lógica

Hemos creado la macro "PrintReports" para la impresión personalizada. Esta macro se repetirá desde la celda A13 hasta la última fila. Podemos especificar tres tipos diferentes para la impresión personalizada.

Para el tipo 1, necesitamos especificar el nombre de la hoja en la siguiente columna.

Para el tipo 2, necesitamos especificar el rango para el que queremos la impresión.

Para el tipo 3, necesitamos especificar el nombre de la vista personalizada.

Explicación del código

Para cada celda1 en el rango ("A13", ActiveCell.End (xlDown))

El código anterior se usa para recorrer desde la celda A13 hasta la última fila.

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

El código anterior se usa para obtener el valor de la celda en la siguiente columna de la celda activa.

Seleccione Case Cell1.Value

Caso 1

'Seleccionar la hoja definida

Hojas (DefinedName) .Seleccionar

Caso 2

'Seleccionar el rango definido

Application.Goto Reference: = DefinedName

Caso 3

'Seleccionar la vista personalizada definida

ActiveWorkbook.CustomViews (DefinedName) .Show

Finalizar Seleccionar

La declaración de selección anterior se utiliza para seleccionar el área especificada según el tipo definido por el usuario.

ActiveWindow.SelectedSheets.PrintOut

El código anterior se utiliza para imprimir el área seleccionada.

Siga a continuación para obtener el código

 Option Explicit Sub PrintReports () 'Variables declaradas Dim DefinedName As String Dim Cell1 As Range' Deshabilitando las actualizaciones de pantalla Application.ScreenUpdating = False 'Recorriendo todas las celdas para cada celda1 en el rango ("A13", ActiveCell.End (xlDown)) Hojas ("Principal"). Active 'Seleccionando la celda Cell1.Seleccione' Obteniendo el valor del nombre de la hoja o rango definido DefinedName = ActiveCell.Offset (0, 1) .Value Select Case Cell1.Value Case 1 'Seleccionando la hoja definida Sheets (DefinedName ) .Seleccione el caso 2 'Selección del rango definido Application.Goto Reference: = DefinedName Caso 3' Seleccione la vista personalizada definida ActiveWorkbook.CustomViews (DefinedName) .Show End Select 'Imprimiendo los datos requeridos ActiveWindow.SelectedSheets.PrintOut Next Application.ScreenUpdating = True End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico