在ThisWorkbook Excel对象中,我有以下两个子例程:
Private Sub Workbook_Open()
MsgBox "Hello World"
Call call_DN
End Sub
Sub call_DN()
Application.COMAddIns("DataNitro.DataNitro").Object.RunScript ("test.py")
MsgBox "called sub"
End Sub
当我打开工作簿时,我看到“Hello World”消息框,然后是“被调用的子”消息框,但是python脚本没有执行。
然而,当我然后手动运行Workbook_Open()时,python脚本确实正确执行。
为什么python脚本在应用程序启动时没有执行?
没有抛出任何错误消息 - 似乎只是忽略了.runscript命令。
答案 0 :(得分:1)
DataNitro具有autostart选项,用于在工作簿启动时调用脚本。请使用它而不是VBA的工作簿打开钩子。
(工作簿开放式钩子应该在理论上起作用,但它看起来并没有。)