这里是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这里是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])Python脚本从这样的cmd运行时。
c:\test>python pyfile.py "string"
在Flash中打开,但在VBA中使用它需要很多时间。
测试:
直接运行python:
少于一秒。
来自VBA
15-20秒。
所以我认为这不是一个表现问题,而是一个程序问题。