首页 > 解决方案 > 使用 .txt 作为输入和输出从 VBA 调用 python 时如何处理刷新延迟?

问题描述

我正在使用 VBA 宏来自动化 excel 中的多个数据处理步骤,例如数据缩减和可视化。但是由于 excel 不适合我的目的,我使用了一个使用 scipy 的最小二乘三次 b 样条函数的 python 脚本。输入和输出是通过 .txt 文件完成的。因为我从朋友那里得到的手动脚本调整了脚本。

VBA 调用 Python

Call common.callLSQCBSpline(targetrng, ThisWorkbook) #calls python which works
Call common.callLoadFitTxt(targetrng, ThisWorkbook) # loads pythons output

现在有趣的事情: 这在调试模式下有效,但在“全速”运行时无效。该问题的解决方案是简单地等待目录被写入 .txt 以刷新并加载当前而不是先前的输出文件。我的解决方案目前如下所示:

Call common.callLSQCBSpline(targetrng, ThisWorkbook)
Application.Wait (Now + 0.00005)
Call common.callLoadFitTxt(targetrng, ThisWorkbook)

这很慢而且很烦人,但很有效。有没有办法加快这个速度?python 脚本工作正常并正确写入 output.txt 文件。VBA 只需要一两秒钟就可以加载它。txt 文件非常小,不到 1 kB。

提前致谢!

标签: pythonexcelvba

解决方案


推荐阅读