【问题标题】:Method 'Run' of object 'IwshShell3' Failed while using Label使用标签时对象“IwshShell3”的方法“运行”失败
【发布时间】:2021-11-11 09:23:26
【问题描述】:

更新:我得到它的工作,你可以看看答案,以防你好奇或有同样的问题。

我想创建一个宏来运行代码,方法是先查找 shell,然后查找脚本并使用 Wscript Shell 运行它。

我想将文件路径存储在 2 个标签中,因此我编写了以下代码:

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

【问题讨论】:

    标签: python vba string shell


    【解决方案1】:

    更新:我已经解决了,如果你有同样的问题,这里是如何解决的:

    我在我的文件路径之前和之后添加了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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多