有没有一种方法可以在不重新打开Excel文件的情况下使用xlwings调用python?

发布于 2021-01-29 16:24:51

我正在使用xlwings从Excel调用python。我发现在运行宏时,Excel将关闭并重新打开以运行代码。它可以正常运行,但是会减慢速度。此外,如果未保存Excel文件,则会出现一个对话框,提示该文件已打开,并且我将丢失未保存的更改。

有没有一种方法可以在不重新打开Excel文件的情况下调用python?

这是我的python代码(在loaddf.py中):

from xlwings import Workbook, Range, Sheet

def my_macro():
    wb = Workbook.caller()
    Range('A1').value = Range('A1').value + 1

以及我的Excel文件中的VBA代码:

Sub loaddfsub()
    RunPython ("import loaddf; loaddf.my_macro()")
End Sub

谢谢您的帮助。

关注者
0
被浏览
233
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    似乎在某些情况下,Excel不能在RunningObjectTable前提下正确注册Excel工作簿,因此可以通过COM找到它。到目前为止,我只注意到从Internet下载的工作簿的这种行为,因为它Protected View首先以模式打开它们(取决于“设置”)。但是,根据此处的反馈,似乎它也可能在其他情况下发生,可能是由某些加载项或安全设置引起的。

    我已经为此实现了一个修复程序v0.3.1,但是您现在可以直接从GitHub获得它。让我知道您是否需要帮助。

    更新 (2015年1月16日):包括此修复程序的xlwings v0.3.1刚刚发布。

    Update2 (2015年9月13日):xlwings v0.4.0最终应该以可靠的方式修复此错误。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看