In questo articolo creeremo una macro per stampare tutti i file Excel all’interno di una cartella.

Abbiamo alcuni file Excel all’interno di una cartella che vogliamo stampare. Tutti hanno la stessa estensione di file, “.xlsx”

ArrowFilesInFolder

ArrowMain

Spiegazione del codice

Dir (TargetFolder & FileFilter)

Il codice sopra viene utilizzato per ottenere il nome del file del primo file all’interno del percorso della cartella.

Workbooks.Open TargetFolder & FileName Il codice precedente viene utilizzato per aprire la cartella di lavoro definita.

ActiveWorkbook.PrintOut Il codice precedente viene utilizzato per stampare la cartella di lavoro attiva.

Segui sotto per il codice

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

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]