ADODB查询当前Excel文件表格失败问题求助
解决ADODB连接Excel工作簿时的独占访问错误
检查文件打开模式
打开文件后,通过「文件」→「信息」查看是否处于「独占模式」。若是,关闭文件后重新打开,打开时按住Shift键可选择共享模式。清理残留的锁定临时文件
Excel运行时会生成~$开头的隐藏锁定文件,异常退出可能导致这些文件残留:- 关闭所有Excel窗口;
- 在文件所在文件夹开启「显示隐藏文件」;
- 删除所有
~$开头的相关文件; - 重新打开文件执行宏。
调整ADODB连接字符串的访问模式
在连接字符串中明确设置共享读写权限,避免独占锁定。示例代码:Dim conn As ADODB.Connection Set conn = New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;Mode=ReadWrite|Share Deny None"""核心是添加
Mode=ReadWrite|Share Deny None参数,允许共享访问。验证文件权限与存储路径
- 网络共享盘文件:确认当前用户有读写权限,共享盘无临时限制;
- 本地文件:右键文件→「属性」→「安全」,确保当前用户拥有「修改」「写入」权限;
- 避免将文件存放在系统目录(如C:\Windows),这类目录有UAC权限限制,建议移至个人文件夹(如Documents)。
修复Office或更新ACE数据库引擎
- 打开控制面板→「程序和功能」,找到Microsoft Office,选择「更改」→「快速修复」;
- 若无效,下载安装对应位数(32/64位)的Microsoft Access Database Engine可再发行组件包,确保与Office版本匹配。
确保宏代码正确释放资源
执行完查询后,必须关闭并释放ADODB连接和记录集对象,防止残留锁定:rs.Close Set rs = Nothing conn.Close Set conn = Nothing
内容的提问来源于stack exchange,提问作者osantos
相关产品推荐
相关产品推荐

