首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VBA 批量處理 Excel 文件:遍歷當前目錄、自動加載巨集並靜默保存

     編輯:程式設計疑難解答

核心代碼

Sub BatchSaveAll()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    
    Dim wb As Workbook, fName As String
    fName = Dir(ThisWorkbook.Path & "\*.xls*")
    Do While fName <> ""
        If fName <> ThisWorkbook.Name Then
            Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & fName, , False)
            ' 此處可調用個人巨集工作簿中的公共函數
            ' Application.Run "Personal.xlsb!MyMacro", wb
            wb.Save
            wb.Close True
        End If
        fName = Dir
    Loop
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    MsgBox "處理完成!"
End Sub

關鍵點

  • Dir 遍歷當前目錄(非遞歸子目錄)。
  • Workbooks.Open(..., , False) 僅讀模式打開,不觸發 Auto_Open 巨集。
  • 個人巨集工作簿 (Personal.xlsb) 需預先加載,Application.Run 跨工作簿調用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved