Excel 365中ADO连接CSV的Connection.Open失败,求正确代码
解决Excel 365中ADO连接CSV失败的问题
你的问题根源在于驱动兼容性:Microsoft.Jet.OLEDB.4.0是仅支持32位的旧驱动,而当前Excel 365多为64位版本,因此无法正常加载。改用Microsoft.ACE.OLEDB.12.0驱动即可解决,该驱动同时兼容32/64位环境,也是Office 365推荐使用的版本。
修改后的代码片段如下:
Function ADOArrayCSV(FolderName As String, FileName As String, Optional ByVal Transposition As String = "N") As Variant Dim Connection As New ADODB.Connection ' 使用ACE驱动替代Jet驱动 Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FolderName & _ ";Extended Properties=""text;HDR=Yes;FMT=Delimited;IMEX=1"";" End Function
额外注意事项:
- 如果运行时仍提示找不到驱动,可能是你的Office 365未预装ACE驱动,可安装微软官方的「Microsoft Access Database Engine 2010 Redistributable」补充(需匹配系统位数)。
- 连接字符串中加入
IMEX=1,可以避免CSV中存在混合数据类型时的读取异常,建议保留。 - 确保
FolderName是文件夹的完整路径(不含文件名),且路径末尾不要带斜杠。
内容的提问来源于stack exchange,提问作者xceej
相关产品推荐
相关产品推荐

