我有一个非常奇怪的问题,我试了几天来解决它,但我一直没有解决,我想知道是否有人可以帮助我。 我想顺序运行多个excel文件中的宏,即excel 1和excel 2都有宏a和b
wb = xw.Book("excel1.xlsb", update_links=False)
wb.macro("macro1")()
wb.macro("macro2")()
wb.save()
wb.close()
启动计算机后的第一次运行该操作不会出现任何问题,macro1和Macro2都会执行。 当我打开excel2文件时,第二个宏显示一条错误消息
wb = xw.Book("excel2.xlsb", update_links=False)
wb.macro("macro1")()
wb.macro("macro2")()
wb.save()
wb.close()
在excel中:
运行时错误“1004”:
应用程序定义或对象定义错误
在jupyter中:
com_错误:(-2147352567,‘发生异常’,(0,无,无,无,0,-2146788248),无)
但是,如果我拆分代码并运行
wb = xw.Book("excel2.xlsb", update_links=False)
wb.macro("macro1")()
我用光标点击excel,excel被激活,我回到jupyter笔记本并执行
wb.macro("macro2")()
wb.save()
wb.close()
然后它工作了,我没有收到这个错误消息。一般来说,这对我来说似乎很奇怪,我试图通过使用seal_focus=True激活wb来复制我在代码中手动执行的操作
wb = xw.Book("excel2.xlsb", update_links=False)
wb.macro("macro1")()
wb.activate(steal_focus=True)
time.sleep(5)
wb.macro("macro2")()
wb.save()
wb.close()
但是我收到了同样的错误信息。宏在模块中。 如果我再次拆分代码,即我第一次运行
wb = xw.Book("excel2.xlsb", update_links=False)
wb.macro("macro1")()
然后:
wb.activate(steal_focus=True)
wb.macro("macro2")()
wb.save()
wb.close()
第一次执行第二部分时,我得到了相同的错误消息。但是,如果我第二次执行第二部分,它就会工作。但这对我来说不是一个解决方案,因为它应该一次性运行。我似乎无法理解,也无法找到解决办法。有人有可能找到解决办法吗?我遗漏了什么吗
非常感谢
汤姆
目前没有回答
相关问题 更多 >
编程相关推荐