Impresión de datos desde diferentes hojas utilizando VBA en Microsoft Excel
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 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.
Seleccionar caso Cell1.Value Caso 1 ‘Seleccionar la hoja definida Hojas (DefinedName) .Seleccionar caso 2’ Seleccionar el rango definido Application.Goto Reference: = DefinedName Case 3 ‘Seleccionar la vista personalizada definida ActiveWorkbook.CustomViews (DefinedName) .Mostrar Fin Seleccionar La declaración de selección anterior se utiliza para seleccionar el área especificada en función del tipo definido por el usuario.
ActiveWindow.SelectedSheets.PrintOut El código anterior se utiliza para imprimir el área seleccionada.
Siga el código a continuación
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
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]