Imprimir todos los libros en una carpeta con VBA en Microsoft Excel
En este artículo, crearemos una macro para imprimir todos los archivos de Excel dentro de una carpeta.
Tenemos algunos archivos de Excel dentro de una carpeta que queremos imprimir. Todos ellos tienen la misma extensión de archivo, “.xlsx”
Explicación del código
Dir (TargetFolder y FileFilter)
El código anterior se utiliza para obtener el nombre de archivo del primer archivo dentro de la ruta de la carpeta.
Workbooks.Open TargetFolder & FileName El código anterior se utiliza para abrir el libro de trabajo definido.
ActiveWorkbook.PrintOut El código anterior se utiliza para imprimir el libro activo.
Siga a continuación el código
Option Explicit Sub PrintAllWorkbooksInFolder(TargetFolder As String, FileFilter As String) 'Declaring variable Dim FileName As String 'Disabling screen updates Application.ScreenUpdating = False 'Adding path separator in the end of target folder name If Right(TargetFolder, 1) <> "\" Then TargetFolder = TargetFolder & "\" End If 'Assigning default path to file filter If FileFilter = "" Then FileFilter = "*.xls" 'Get the file name of first file in the folder FileName = Dir(TargetFolder & FileFilter) While Len(FileName) > 0 If FileName <> ThisWorkbook.Name Then 'Open workbook Workbooks.Open TargetFolder & FileName 'Prints all sheets in the workbook ActiveWorkbook.PrintOut 'Close the workbook without saving any changes ActiveWorkbook.Close False End If 'Get file name of next file in the folder FileName = Dir Wend End Sub Sub CallingProcedure() 'Declaring variables Dim FolderPath, FileName As String 'Getting values from textbox on sheet1 FolderPath = Sheet1.TextBox1.Value FileName = Sheet1.TextBox2.Value 'Calling PrintAllWorkbooksInFolder procedure PrintAllWorkbooksInFolder FolderPath, FileName 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]