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
相关产品推荐
相关产品推荐

