使用Python调用XLSB宏工作簿时遇FileNotFoundError报错求助
解决Python调用XLSB宏工作簿时的FileNotFoundError问题
以下是针对性的排查和解决步骤:
核对文件路径的准确性
- 避免手动输入路径错误:右键目标XLSB文件→属性→安全→复制「对象名称」栏的完整路径,直接替换代码中的路径字符串,确保包含所有空格、标点和大小写与实际文件一致。
- 注意路径中的特殊字符:比如你代码里的「1.Work」,确认实际文件夹名称没有遗漏空格(如「1. Work」),即便Windows不区分大小写,xlwings的路径解析可能对空格敏感。
确认文件真实存在
- 打开资源管理器,粘贴路径直接跳转,验证文件是否存在。
- 检查隐藏的文件后缀:Windows默认隐藏已知文件类型后缀,可能实际文件名是「Personal All MAcro codes.xlsb.xlsb」。可通过「文件夹选项→查看→取消勾选‘隐藏已知文件类型的扩展名’」来显示完整后缀,修正文件名。
排查权限问题
- 若路径位于C盘系统目录下,可能需要以管理员身份运行Python脚本,避免权限限制导致无法读取文件。
- 临时将XLSB文件复制到桌面,修改代码路径为桌面路径(如
r'C:\Users\你的用户名\Desktop\Personal All Macro codes.xlsb'),测试是否能正常打开,排除文件夹权限问题。
验证Excel与xlwings环境
- 确认Excel能正常打开该XLSB文件,无损坏、无加密(若有密码,需在
xw.Book()中添加password='你的密码'参数)。 - 更新xlwings到最新版本:执行命令
pip install --upgrade xlwings,避免版本兼容性问题。 - 核对宏名称:确认宏「Iwebsite」是存储在工作簿的标准模块中,而非工作表的代码窗口,且名称拼写完全一致(VBA宏名称不区分大小写,但建议与代码保持一致)。
- 确认Excel能正常打开该XLSB文件,无损坏、无加密(若有密码,需在
修正后的示例代码(替换为正确路径):
import xlwings as xw # 使用复制的完整绝对路径 wb = xw.Book(r'C:\1.Work\Automation\Personal All Macro codes.xlsb') your_macro = wb.macro('Iwebsite') your_macro(1, 2)
内容的提问来源于stack exchange,提问作者Martina
相关产品推荐
相关产品推荐

