String VBA连接不起作用(在VBA中调用Shell)

String VBA连接不起作用(在VBA中调用Shell),string,vba,cmd,String,Vba,Cmd,我有以下vba纸条,效果很好: Call shell("""C:\Program Files\R\R-3.2.1\bin\i386\Rscript.exe"" C:\Users\OEM\Documents\R\file.R", vbNormalFocus) 但是,当我定义filepath变量时: Dim fp As String fp = "C:\Users\OEM\Documents\R\file.R" 并尝试: Call shell("""C:\Program Files\R\R-3

我有以下vba纸条,效果很好:

Call shell("""C:\Program Files\R\R-3.2.1\bin\i386\Rscript.exe""   C:\Users\OEM\Documents\R\file.R", vbNormalFocus)
但是,当我定义filepath变量时:

Dim fp As String
fp = "C:\Users\OEM\Documents\R\file.R"
并尝试:

Call shell("""C:\Program Files\R\R-3.2.1\bin\i386\Rscript.exe""   & fp & file.R", vbNormalFocus)

代码不起作用,我知道这是一个串联问题,但我正在努力使其正确。

您需要另一个双引号,但如果不在执行过程中检查值,可能还会遇到更多问题。例如,您还需要添加一个空格

我建议您将代码更改为这样工作,然后您可以看到正在使用的路径:

Dim fp As String 
Dim sPath As String

fp = "C:\Users\OEM\Documents\R\file.R"

'added double-quote and space right after .exe"
sPath  = """C:\Program Files\R\R-3.2.1\bin\i386\Rscript.exe"" " & fp 

'here's where you'll figure out your issues:
Debug.Print sPath 

Call shell(sPath, vbNormalFocus)

我会努力的,非常感谢。我刚刚发现了第二个双引号问题。请参阅代码中的注释。注释太少,而不是太多。应该是
“C:\Program Files\R\R-3.2.1\bin\i386\Rscript.exe”“”&fp
@GSerg很好。他还需要一个空间。如果他在多行上编写代码并检查其值,他应该能够完全理解这一点,这正是我要说的。可以说,是教人钓鱼。谢谢你们,我能让它工作,只需要一个正确字符串的模板。debug.print命令是救命稻草。真的很有用。