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

Excel VBA使用FileSystemObject.CopyFolder跨网络驱动器复制失败求助

解决VBA中FileSystemObject跨网络复制文件夹失败的问题

核心问题修正:网络路径格式错误

你的代码中FromPath的网络共享路径缺少一个前置反斜杠,网络共享路径必须以**双反斜杠\\**开头,否则FSO无法识别为合法的网络资源。

修正后的完整代码

Sub aatest() 'Richards file copy procedure
    
    Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String

    ' 修正网络路径,添加双反斜杠开头
    FromPath = "\\swv082fs\Data\test"
    ToPath = "C:\Users\rilindley\Data"

    ' 移除路径末尾的反斜杠(保持原有逻辑)
    If Right(FromPath, 1) = "\" Then
        FromPath = Left(FromPath, Len(FromPath) - 1)
    End If

    If Right(ToPath, 1) = "\" Then
        ToPath = Left(ToPath, Len(ToPath) - 1)
    End If

    Set FSO = CreateObject("scripting.filesystemobject")

    ' 检查源文件夹是否存在
    If FSO.FolderExists(FromPath) = False Then
        MsgBox FromPath & " 不存在"
        Exit Sub
    End If

    ' 添加错误捕获,方便排查权限或其他问题
    On Error Resume Next
    FSO.CopyFolder Source:=FromPath, Destination:=ToPath, OverWriteFiles:=True
    On Error GoTo 0

    ' 提示复制结果
    If Err.Number = 0 Then
        MsgBox "文件夹复制完成"
    Else
        MsgBox "复制失败:" & Err.Description
    End If

End Sub

额外排查要点

  • 权限验证:确保当前Windows用户对\\swv082fs\Data\test有读取权限,对C:\Users\rilindley\Data有写入权限。如果网络共享需要凭据,先手动访问一次共享文件夹完成身份验证。
  • 网络稳定性:确认网络连接正常,能直接在文件资源管理器中打开源共享路径。
  • 覆盖参数:代码中添加了OverWriteFiles:=True,如果目标文件夹已存在,会自动覆盖原有内容;若不需要覆盖,可移除该参数(默认不覆盖,存在则报错)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 09:48:13