2015-06-01 35 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

相關問題