萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

Excel VBA 取得各類路徑完整指南:Application.Path、ThisWorkbook.Path 等 6 種屬性差異

VBA 中取得路徑的屬性多達 6 種,用途各異。搞清差異,避免路徑錯誤導致檔案存取失敗。

六大路徑屬性對照表

屬性 回傳內容 範例 用途
Application.Path Excel 應用程式安裝完整路徑 C:\Program Files\Microsoft Office\Office14 尋找 Excel 執行檔、增益集路徑
ThisWorkbook.Path 包含巨集碼之活頁簿所在資料夾 D:\Projects\Report **最常用** 存取同資料夾下的資料檔、樣板
Application.DefaultFilePath 使用者預設儲存資料夾(可在選項中變更) C:\Users\Name\Documents 「另存新檔」預設位置
Application.ActiveWorkbook.Path 目前作用中活頁簿所在資料夾 D:\Projects\Report 操作目前開啟檔案的同目錄資源
Application.ActiveWorkbook.FullName 目前作用中活頁簿完整路徑含檔名 D:\Projects\Report\Budget.xlsx 需完整檔案路徑時(如附件寄送、外部參考)
Application.ActiveWorkbook.Name 目前作用中活頁簿檔名(含副檔名) Budget.xlsx 顯示檔名、記錄日誌、比對檔名

測試程式碼(貼入標準模組執行)

Sub TestPaths()
    MsgBox "Application.Path: " & Application.Path
    MsgBox "ThisWorkbook.Path: " & ThisWorkbook.Path
    MsgBox "DefaultFilePath: " & Application.DefaultFilePath
    MsgBox "ActiveWorkbook.Path: " & Application.ActiveWorkbook.Path
    MsgBox "ActiveWorkbook.FullName: " & Application.ActiveWorkbook.FullName
    MsgBox "ActiveWorkbook.Name: " & Application.ActiveWorkbook.Name
    
    ' 同時寫入工作表 A1:A6 供查閱
    With ActiveSheet
        .Cells(1, 1).Value = Application.Path
        .Cells(2, 1).Value = ThisWorkbook.Path
        .Cells(3, 1).Value = Application.DefaultFilePath
        .Cells(4, 1).Value = Application.ActiveWorkbook.Path
        .Cells(5, 1).Value = Application.ActiveWorkbook.FullName
        .Cells(6, 1).Value = Application.ActiveWorkbook.Name
    End With
End Sub

延伸應用:Dir 函數判斷檔案是否存在

If Dir(ThisWorkbook.Path & "\Data\Import.csv") <> "" Then
    ' 檔案存在,執行匯入
Else
    MsgBox "找不到匯入檔案!"
End If

進階:FileSearch 物件(舊版)遍歷子資料夾

程式碼示範遞迴搜尋所有 .xls 檔案並修改內容,現代建議改用 FileSystemObject 或 Power Query。

copyright © 萬盛學電腦網 all rights reserved