【问题标题】:Excel VBA Call Shell with quotes in stringExcel VBA调用Shell,字符串中带有引号
【发布时间】:2017-11-04 07:11:47
【问题描述】:

我真的不知道如何处理我的问题。 所以我想要的是:

Call Shell("C:\Temp\Zint\zint.exe -d "1234"",vbNormalFocus)

我在windows命令行中使用这个命令:C:\Temp\Zint\zint.exe -d "1234"

只有在引号之间给出数字时才有效。

我无法处理这些报价,所以请善意地解释我应该如何使用它们。

谢谢!

【问题讨论】:

    标签: vba excel shell quotes double-quotes


    【解决方案1】:

    在 VBA 中,引号通过加倍来转义:

    Call Shell("C:\Temp\Zint\zint.exe -d ""1234""",vbNormalFocus)
    

    【讨论】:

    • 谢谢!它没有用,但我找到了解决方案......我花了一整天的时间来解决它......调用 Shell("C:\Temp\Zint\zint.exe" & " " & "-d" & Chr(34) & "1234" & Chr(34), vbNormalFocus)
    • @Dominik 你的回答和蒂姆在这里发布的一样:)
    • @SiddharthRout - 也许 需要摆脱-d "1234" 中的空间才能使其工作,但问题中肯定没有任何内容表明它应该'不在那里,所以我同意蒂姆的回答比 OP 的自我回答要好
    【解决方案2】:

    解决办法是:

    Call Shell("C:\Temp\Zint\zint.exe" & " " & "-d" & Chr(34) & "1234" & Chr(34), vbNormalFocus)
    

    【讨论】:

    • 这与我的建议完全相同(但更复杂的恕我直言),除了您现在在 -d 和“1234”之间没有空格
    • 如果需要去掉 -d"1234" 之间的空格才能使代码正常工作,请更新问题以说出类似“当我在 Windows 命令行中使用此命令时:C:\Temp\Zint\zint.exe -d "1234" 不起作用,但 C:\Temp\Zint\zint.exe -d"1234" 确实起作用“
    猜你喜欢
    • 2013-11-21
    • 2017-08-17
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多