从VBA执行Python时,Python子进程会变慢
这里是VBA从VBA执行Python时,Python子进程会变慢,python,vba,ms-word,Python,Vba,Ms Word,这里是VBA Sub patseersearchPats1() pyfile = "path/to/test.py" Set objShell = CreateObject("WScript.Shell") ccmd = "python" & " " & pyfile & " " & """" & Selection.Range.Text & """" objShell.Run ccmd, 0, False End
Sub patseersearchPats1()
pyfile = "path/to/test.py"
Set objShell = CreateObject("WScript.Shell")
ccmd = "python" & " " & pyfile & " " & """" & Selection.Range.Text & """"
objShell.Run ccmd, 0, False
End Sub
这里是python
import subprocess
import os
import uuid
import sys
import time
appdata = os.getenv('APPDATA')
npp = os.path.join(appdata, r"npp.7\notepad++.exe") #path to minimalistic npp 7
def MsgBox(data):
temp = os.path.join(appdata, str(uuid.uuid4()) + '.md')
with open(temp, 'a', encoding='utf-8') as f:
f.write(data + '\n')
subprocess.call([npp, temp])
time.sleep(1)
os.remove(temp)
if __name__ == "__main__":
MsgBox(sys.argv[1])
像这样从cmd运行Python脚本。
c:\test>python pyfile.py“string”
在flash中打开,但从VBA使用它需要很多时间
测试:
直接运行python:
不到一秒钟
来自VBA
15-20秒
所以我认为这不是一个性能问题,而是一个过程问题。也许更多的是一个代码审查问题?嗯,让我们等一下。如果你关心性能,为什么要使用VBA和python?你是对的。Python部分还可以。我认为问题在于VBA部分,当您使用Microsoft word时,并没有任何可行的替代方案。也许还有一个问题需要代码审查?嗯,让我们等待。如果您关心性能,为什么要使用VBA和python?您是对的。Python部分还可以。我认为问题在于VBA部件,当您使用Microsoft word时,并没有任何可行的替代方案。