Skriv ut alla arbetsböcker i en mapp med VBA i Microsoft Excel

Anonim

I den här artikeln kommer vi att skapa ett makro för att skriva ut alla Excel -filer i en mapp.

Vi har några Excel -filer i en mapp som vi vill skriva ut. Alla har samma filtillägg, ".xlsx"

Kodförklaring

Dir (TargetFolder & FileFilter)

Ovanstående kod används för att hämta filnamnet på den första filen i sökvägen.

Workbooks.Open TargetFolder & FileName

Ovanstående kod används för att öppna den definierade arbetsboken.

ActiveWorkbook.PrintOut

Ovanstående kod används för att skriva ut den aktiva arbetsboken.

Följ koden nedan

 Alternativ Explicit Sub PrintAllWorkbooksInFolder (TargetFolder As String, FileFilter As String) 'Declaring variable Dim FileName As String' Inaktivera skärmuppdateringar Application.ScreenUpdating = False 'Lägga till sökvägsavskiljare i slutet av målmappnamnet If Right (TargetFolder, 1) "\" Sedan TargetFolder = TargetFolder & "\" Avsluta om 'Tilldela standardväg till filfilter Om FileFilter = "" Då FileFilter = "*.xls"' Hämta filnamnet på den första filen i mappen FileName = Dir (TargetFolder & FileFilter) Medan Len (FileName)> 0 If FileName ThisWorkbook.Name Then 'Open workbook Workbooks.Open TargetFolder & FileName' Prints all sheets in the workbook ActiveWorkbook.PrintOut 'Stäng arbetsboken utan att spara några ändringar ActiveWorkbook.Close False End If' Get file name of nästa fil i mappen FileName = Dir Wend End Sub Sub CallingProcedure () 'Declaring variables Dim FolderPath, FileName As String' Hämtar värden från textruta på sheet1 FolderPath = Sheet1.TextBox1.Value FileName = Sheet1.TextB ox2.Value 'Calling PrintAllWorkbooksInFolder procedure PrintAllWorkbooksInFolder FolderPath, FileName End Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen