You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ThisWorkbook.Path获取同目录工作簿文件名遇运行时错误52

解决VBA中ThisWorkbook.Path结合Dir函数触发Runtime Error 52的问题

问题分析

你的代码触发Runtime Error 52(无效文件名或编号)有两个核心原因:

  1. 路径拼接错误:ThisWorkbook.Path返回的路径末尾默认不带路径分隔符(\),直接拼接"*.csv*"会生成类似C:\TestFolder*.csv的无效路径,Dir函数无法识别。
  2. OneDrive同步影响:当文件夹被OneDrive备份时,ThisWorkbook.Path返回的可能是OneDrive的在线URL(而非本地磁盘路径),Dir函数仅支持本地文件路径,因此报错。

修正方案

方案1:修复路径分隔符问题(适用于本地路径场景)

先确保路径末尾带有\,再进行文件匹配,代码如下:

Sub WorksheetImport()
    Dim vWBFolder As String
    Dim vWBName As String
    
    vWBFolder = ThisWorkbook.Path
    ' 检查并补充路径分隔符
    If Right(vWBFolder, 1) <> "\" Then
        vWBFolder = vWBFolder & "\"
    End If
    ' 匹配csv文件(原代码的"*.csv*"会匹配含csv的文件名,建议用"*.csv"精准匹配)
    vWBName = Dir(vWBFolder & "*.csv")
    
    MsgBox vWBName
End Sub

方案2:处理OneDrive在线路径(兼容同步文件夹场景)

如果需要保留OneDrive同步,可将ThisWorkbook.Path返回的在线URL转换为本地磁盘路径。以下是通用转换方法:

Sub WorksheetImport_OneDriveCompatible()
    Dim vWBFolder As String
    Dim vWBName As String
    Dim wsShell As Object
    Dim oneDriveLocalPath As String
    
    ' 获取OneDrive本地同步路径(读取注册表)
    Set wsShell = CreateObject("WScript.Shell")
    ' 个人版OneDrive路径,若为企业版可修改注册表路径为HKCU\Software\Microsoft\OneDrive\Accounts\Business1\UserFolder
    oneDriveLocalPath = wsShell.RegRead("HKCU\Software\Microsoft\OneDrive\Accounts\Personal\UserFolder")
    
    vWBFolder = ThisWorkbook.Path
    
    ' 检测并转换OneDrive在线路径
    If InStr(vWBFolder, "https://d.docs.live.net") > 0 Then
        ' 提取在线路径中的相对文件夹部分,替换为本地路径
        Dim relativePath As String
        relativePath = Mid(vWBFolder, InStrRev(vWBFolder, "/") + 1)
        vWBFolder = oneDriveLocalPath & "\" & relativePath
    End If
    
    ' 补充路径分隔符
    If Right(vWBFolder, 1) <> "\" Then
        vWBFolder = vWBFolder & "\"
    End If
    
    vWBName = Dir(vWBFolder & "*.csv")
    MsgBox vWBName
End Sub

补充说明

  • 若组织允许,将目标文件夹从OneDrive备份中排除是最直接的解决方案,无需修改代码即可恢复正常。
  • 代码中Dir(vWBFolder & "*.csv")仅返回第一个匹配的文件名,若需遍历所有csv文件,可循环调用Dir()直到返回空字符串。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:12:56