python - 强制 python 脚本不等待 vba 宏终止

标签 python vba excel

我从 python 脚本运行一个很长的 Excel VBA 宏(大约 10-15 分钟)。我想为最终用户制作一个进度条。 为了从宏到 python 脚本进行通信,我尝试在 txt 文件中写入 VBA 宏的进度百分比,并将该数字插入到我的 .py 中的进度条(使用 Qt 完成)中 问题是:py 脚本等待宏完成以读取 .txt 文件值。我正在寻找一种方法来强制Python转到下一个命令而不等待宏完成。 这是我使用不成功的.py

from PyQt4 import QtGui, QtCore
import sys

import progress
import win32com.client

class Progress(QtGui.QDialog, progress.Ui_Progress):
    def __init__(self, parent=None):
        super(Progress, self).__init__(parent)
        self.setupUi(self)
        self.progressBar.setValue(0)

    def main(self):
        self.show()

    def evolution(self, a):
        self.progressBar.setValue(a)

if __name__=='__main__':
    app = QtGui.QApplication(sys.argv)
    progress = Progress()
    progress.main()
    xl=win32com.client.Dispatch("Excel.Application")
    xl.Workbooks.Open(Filename="filename",ReadOnly=1)
    xl.Application.ScreenUpdating = False
    xl.Application.Run("myscript")
    while a < 100
        file = open('newfile.txt', 'r')
        a = int(file.read())
        progress.evolution(a)
        file.close()
    app.exec_()


def main():
    pass

最佳答案

为什么不创建一个用户表单作为进度条,直接从 Excel VBA 代码调用?

http://www.ehow.com/how_7764247_create-progress-bar-vba.html

关于python - 强制 python 脚本不等待 vba 宏终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062331/

相关文章:

.net - 从 VBA 调用 COM 加载项选项

vba - 如何清除合并单元格的内容

javascript - 如何在网页上找到按钮

mysql - 来自 SQL Server 存储过程的 Excel "2010"中的表,工作簿中包含参数字段

Appengine 上的 Python 使用 BeautifulSoup ImportError : No module named bs4

python - 自动记录我的 REST API

python - 使用 Python : best practices, 优缺点全文搜索 XML 数据

vba - Excel VBA - 选择剪切粘贴错误

excel - "Microsoft Office Excel is waiting for another application to complete an OLE action."是什么意思?

python - 使用 TensorFlow 后端。导入 tensorflow 时出错