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

Excel 365 for Mac中手动可导入的CSV,VBA OpenText报1004错误求助

Mac版Excel 365 VBA OpenText打开CSV报1004错误的解决方向
  • 检查文件路径兼容性:Mac系统使用POSIX路径(以/分隔,如/Users/用户名/文档/银行数据.csv),确保fileToOpen参数没有Windows风格的\分隔符,路径中的空格或特殊字符无需额外转义,但要保证路径完整且文件存在。

  • 改用QueryTables导入(推荐):Mac版VBA的OpenText对分号分隔的CSV支持存在兼容性问题,替换为QueryTables更稳定,示例代码如下:

Public Function openSource(fileToOpen As String) As Excel.Workbook
    Dim newSheet As Worksheet
    Set newSheet = ThisWorkbook.Worksheets.Add
    With newSheet.QueryTables.Add(Connection:="TEXT;" & fileToOpen, Destination:=newSheet.Range("A1"))
        .TextFilePlatform = 65001 ' 指定UTF-8编码
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlDoubleQuote
        .TextFileSemicolonDelimiter = True ' 启用分号分隔符
        .TextFileColumnDataTypes = Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) ' 19列均设为常规格式
        .Refresh BackgroundQuery:=False
    End With
    Set openSource = newSheet.Parent
End Function
  • 简化OpenText参数:如果坚持使用OpenText,尝试删除FieldInfo数组(让Excel自动识别列格式),或确认数组长度与文件实际列数完全匹配——Mac版Excel对过长的FieldInfo数组可能触发错误。

  • 确认文件编码匹配:验证银行CSV文件的实际编码,若不是UTF-8,将Origin参数改为对应编码值(例如ISO-8859-1对应1252)。

  • 检查函数执行场景:如果该函数是作为单元格公式调用,VBA函数在这种场景下没有权限操作Workbooks对象,需改为Sub过程,或在VBA编辑器的宏窗口中直接执行。

内容的提问来源于stack exchange,提问作者Bob W in Munich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:45:18