Trong bài viết này, chúng tôi sẽ tạo một macro để in tất cả các tệp Excel trong một thư mục.

Chúng tôi có một số tệp Excel trong một thư mục mà chúng tôi muốn in. Tất cả chúng đều có cùng phần mở rộng tệp, “.xlsx”

ArrowFilesInFolder

ArrowMain

Giải thích mã

Dir (TargetFolder & FileFilter)

Đoạn mã trên được sử dụng để lấy tên tệp của tệp đầu tiên trong đường dẫn thư mục.

Workbooks.Open TargetFolder & FileName Đoạn mã trên được sử dụng để mở sổ làm việc đã xác định.

ActiveWorkbook.PrintOut Đoạn mã trên được sử dụng để in sổ làm việc đang hoạt động.

Vui lòng theo dõi bên dưới để biết mã

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

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]