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

使用VBA通过SharePoint打开文本文件时遇运行时错误52

解决VBA读取SharePoint文本文件时的运行时错误52

问题根源

VBA的Open语句仅支持本地文件路径或已映射为网络驱动器的UNC路径,无法直接解析HTTPS协议的SharePoint在线文件URL,所以执行Open strFile For Input As #1时触发错误52(错误的文件名或编号)。

解决方案

方法1:使用SharePoint本地同步路径

  • 先通过OneDrive同步客户端,将目标SharePoint站点同步到本地
  • 修改代码中InitialFileName为本地同步路径,示例:
    .InitialFileName = "C:\Users\你的用户名\OneDrive - 公司名称\sites\THALI01\"
    
  • 后续Open语句即可正常使用同步后的本地文件路径执行读取操作

方法2:用ADODB.Stream直接读取在线文件

无需同步到本地,直接通过HTTP请求读取SharePoint文件内容,修正后的完整代码如下:

Dim FileToOpen As Variant
Dim sh As Worksheet
Dim strFile As String
Dim objStream As Object
Dim strContent As String
Dim arrLines() As String
Dim i As Long
Dim Oneline As String
Dim Acq As String

' 指定目标工作表,避免变量未赋值报错
Set sh = ThisWorkbook.Worksheets("Sheet1") ' 替换为你的工作表名称

'-------选择文件-------------
Set FileToOpen = Application.FileDialog(msoFileDialogFilePicker)
With FileToOpen
    .Filters.Clear
    .Filters.Add "Text Files", "*.tx*"
    .Title = "Browse to text File"
    .AllowMultiSelect = False
    .InitialFileName = "https://my.sharepoint.com/sites/THALI01/"
    If .Show = True Then
        strFile = .SelectedItems(1)
    Else
        Exit Sub ' 用户取消选择时直接退出
    End If
End With

'-----读取在线文件内容-----
Set objStream = CreateObject("ADODB.Stream")
With objStream
    .Charset = "utf-8" ' 根据文件实际编码调整,比如gb2312对应简体中文
    .Open
    .LoadFromFile strFile ' 支持HTTPS格式的SharePoint文件路径
    strContent = .ReadText
    .Close
End With
Set objStream = Nothing

' 按行拆分内容并查找目标行
arrLines = Split(strContent, vbCrLf)
For i = LBound(arrLines) To UBound(arrLines)
    Oneline = arrLines(i)
    If Left(Oneline, 42) = "Mapping Definition Name: " Then
        Acq = Trim(Mid(Oneline, 42, 30))
        sh.Range("B8") = Acq
        Exit For
    End If
Next i

额外注意事项

  • 确保当前登录账号拥有目标SharePoint文件的访问权限
  • 若文件编码非UTF-8,需修改.Charset参数匹配实际编码
  • 原代码中sh变量未指定具体工作表,需补充赋值语句避免后续报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:17:11