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”

ArrowFilesInFolder

ArrowMain

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]