1

我需要在 Excel 中创建一个 VBA 宏。

任务是,当单击按钮时,将在 cmd 中执行命令。

要执行的命令是rfrompcb,它将文件的路径作为参数,因此第一级字符串将路径包装起来,因为它包含空格。由于这个命令要在 cmd 中执行,所以有第二级字符串,它是 cmd 命令的参数,即cmd /c "rfrompcb ""file_path"""(我希望我做对了)。然后因为它是由 VBA 中的 Shell 调用的,所以有第三级字符串,它包装了 cmd 命令并用作 Shell 的参数。

我的问题是:应该有多少个双引号?我对最终的命令行字符串会是什么样子感到很困惑。谁能告诉我如何构造这样的字符串?还是有另一种涉及较少字符串嵌套的方法?

谢谢。

4

1 回答 1

0

您只需要引用file_path,例如:

shell environ$("COMSPEC") & " /c dir ""c:\program files\"" /b"

environ$("COMSPEC")只返回cmd.exe.

如果您希望运行的可执行路径不需要被引用,那么向它传递一个确实需要被引用的参数:

Shell Environ$("COMSPEC") & " /c rfrompcb ""file path"""

如果确实需要引用 exe 路径,则需要将其全部用另一对引号括起来,如下所示:

cmd.exe /c ""c:\path to\rfrompcb" "file path""

可以这样做:

Shell Environ$("COMSPEC") & " /c """"c:\path to\rfrompcb"" ""file path""""" 
于 2012-05-17T12:04:44.507 回答