2015-06-01 33 views
0

这个问题是从Excel调用Python。在VBA中你会做你的RunPython("import mymodule; mymodule.my_function()")您可以在Excel以外的Excel实例中调用Excel中的Python吗?

在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宏。

回答

0

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

相关问题