0

这个问题是针对从 Excel 调用 Python 的。在 VBA 中,你会做你的RunPython("import mymodule; mymodule.my_function()")

在 Python 中,你会有类似的东西,

from xlwings import Workbook, Sheet, Range

    def my_function():
        wb = Workbook.caller() # Create reference to calling Excel file
        Range('A1:C3').clear_contents() # Clear some cells

我的问题是这将适用于您的第一个 Excel 实例。但是,如果您打开了两个实例,并且您尝试在第二个实例中运行代码,您将收到一个引发的异常,说:“无法建立连接!确保调用工作簿是活动工作簿并且是在 Excel 的第一个实例中打开。”

所以看起来这似乎只适用于第一个实例。有没有解决的办法?你能确定你在 Python 脚本中的哪个实例吗?用户希望运行跨多个实例调用 Excel 的 VBA 宏。

4

1 回答 1

0

原则上,xlwings 可以处理 2 个实例。但是,根据您的安全设置,它可能会将从 Internet 下载或存储在网络驱动器上的文件视为不安全文件并将其“沙盒化”。这些文件只有在第一个实例中运行时才能被 xlwings 访问。如果这听起来像您的问题,那么降低安全设置可能会解决问题。另请参阅此处的答案。

于 2015-06-02T00:00:17.757 回答