温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Pause Python3 code until excel macro is finished
Anaconda excel python python-3.x vba

python - 暂停Python3代码,直到Excel宏完成

发布于 2020-04-11 12:05:46

因此,我有一个很大的excel工作簿,里面充满了宏,并且我正在通过python3和pywin32自动使用该工作簿。我想知道是否有人知道在VBA宏运行时如何暂停python脚本?

查看更多

提问者
Tyler Burr
被浏览
143
Rodrigo Castilho 2020-02-05 23:35

我可以建议您采用以下三种方法:

1.使用一个文件向Python发出信号,告知VBA已完成工作

为此,请让您的VBA脚本创建一个空白文件(可以是.xlsx)

import os.path
import time

"""
First block of code here
"""

while os.path.isfile('signal.xlsx') == False:
    time.sleep(10)

"""
Second block of code here
"""

2.计算您的VBA脚本运行需要多长时间

如果您要让脚本更改工作表的某些方面,请使用较短的版本运行,计算所需的时间,然后将运行时间乘以运行所需的总迭代次数。

让Python等待那么多秒,然后再运行以下代码块。

import time

time.sleep(seconds)

3.使用Python Scheduler

例如,如果您认为在晚上运行脚本更安全,也可以使用Schedule项目在给定时间运行脚本。

我推荐您使用https://pypi.org/project/schedule/,因为它有一个非常简单的用法示例。