程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

尝试使用 Python 中的 xlwings 运行 Excel VBA 模块中的基本子程序时,Visual Studio 中抛出异常

发布于2024-11-30 18:04     阅读(39)     评论(0)     点赞(10)     收藏(1)


我正在尝试使用 Microsoft Visual Studio 运行 Python 代码,该代码使用 xlwings 库打开启用宏的 Excel 工作簿并运行位于 Module1 中的名为 MySub() 的 VBA 子例程。当我尝试运行我的代码时,Visual Studio 中抛出了异常。我已包含抛出的异常的快照图像(我知道这被认为是不好的形式,但我真的不知道我会从异常中输入什么……甚至不知道它会有多大用处)

我正在使用:Microsoft Visual Studio Community 2022(64 位)- 当前版本 17.11.1 Python 3.9.13(64 位)Microsoft Excel for Microsoft 365 MSO(版本 2407 Build 16.0.17830.20056)64 位

VS 异常

尝试 1

import xlwings as xw

file_path = r'C:\PythonExcelTest\pythonmacro.xlsm'
wb = xw.Book(file_path)                               #<--- Exception thrown here
macro1 = wb.macro("Module1.MySub")
macro1()

第二次尝试

import xlwings as xw

file_path = r'C:\PythonExcelTest\pythonmacro.xlsm'
app = xw.App(visible=True, add_book=False)
wb = app.books.open(file_path)                        #<--- Exception thrown here
run_macro = wb.app.macro("Module1.MySub")
run_macro()

尝试打开启用宏的工作簿时,上述两次尝试都产生了相同的异常。尝试 1 基于在线 xlwings 文档,尝试 2 基于下面链接的 youtube 示例。

任何有关导致异常的原因的帮助或指导都将不胜感激,谢谢。

xlwings YoutTube 示例


解决方案


注释为“不经调试运行不会导致崩溃。”我区分了在 VS 中运行代码时是使用一般默认的 F5,“开始调试”,这会导致崩溃,还是选择 Ctrl+F5,“不经调试启动”,这不会导致崩溃。

VS 调试选项

但是可以肯定的是,您的两个代码示例都是没问题的,并且可以在命令行或其他 IDE 的调试模式下运行,也可以不运行。

我使用 Pycharm,在该 IDE 上的任一模式下(社区版本或付费版本)运行代码都没有问题。

因此,该问题似乎与 VS 有关,并且可能特定于 2022 社区版本或更广泛的版本。我目前没有安装其他 VS 版本来检查。
如前所述,虽然我使用 VS 来处理 C# 和其他一些东西,但我一直使用 Pycharm 或记事本来处理 Python,因此从未遇到过 Xlwings 的此错误,因此没有经验知道这是新问题还是 VS 一直存在的问题。

VS 上还有一些其他 SO 帖子,其中的错误代码相同,但似乎都与打开有效工作簿无关。
我尝试了几种不同的代码安排,但 VS 总是无法在调试模式下打开工作簿。
正如所提到的,在创建新工作簿时,wb = xw.Book()却没有崩溃。

我不是 VS 专家,我无法判断是否有配置,或者添加特定文件/库是否可以修复或解决该问题。
可能值得向 Xlwings 开发人员提出这个问题,看看他们是否有任何建议。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2046406/bbe72d5aade1aae4719b/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

10 0
收藏该文
已收藏

评论内容:(最多支持255个字符)