更新:我让它起作用了,你可以看看答案,以防你好奇或者有同样的问题。
我想创建一个宏来运行代码,方法是先查找一个Shell,然后查找一个脚本,然后使用Wscript shell运行它。
我想将文件路径存储在两个标签中,所以我编写了以下代码:
Sub RunTerminal()
Dim objShell As Object
Dim CompilerExe, ScriptName As String
Dim StrCommand As String
Set objShell = VBA.CreateObject("Wscript.Shell")
CompilerExe = CStr(Slide1.Label2.Caption)
ScriptName = CStr(Slide1.Label1.Caption)
StrCommand = CompilerExe & ScriptName
objShell.Run StrCommand
End Sub
当我指定shell的文件路径时,代码就会工作,如下所示:
CompilerExe = """C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\python.exe"""
但当我使用标签指定它时,它就没有了。不过,这个问题似乎并不发生在脚本中。
以下分别是Label1和Label2的内容:
C:\Users\Lenovo\Desktop\Arcade\coins.py
C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\python.exe
发布于 2021-11-11 11:03:23
更新:我解决了这个问题,如果你有同样的问题,下面是如何解决的:
我在我的文件路径之前和之后添加了Chr(34)
,以防它们有任何空格,而且它工作了!
Sub RunTerminal()
Dim objShell As Object
Dim CompilerExe, ScriptName As String
Dim StrCommand As String
Set objShell = VBA.CreateObject("Wscript.Shell")
CompilerExe = Chr(34) & CStr(Slide1.Label2.Caption) & Chr(34)
ScriptName = Chr(34) & CStr(Slide1.Label1.Caption) & Chr(34)
StrCommand = CompilerExe & ScriptName
objShell.Run StrCommand
End Sub
https://stackoverflow.com/questions/69925890
复制相似问题