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