Visual Basicstring语法错误,同时尝试自动化WinSCP

我希望使用东西string使用Shell()函数来自动上传一个Excel文件到FTP服务器,每当一个保存发生时:

strShell = "C:\Program Files\WinSCP\WinSCP.exe /console /command " & Chr(34) & "option batch on" & Chr(34) & " " & Chr(34) & "open user:pass@localhost" & Chr(34) & " " & Chr(34) "put " ThisWorkbook.Path & "/" & ThisWorkbook.Name & "/home/User/Directory" & Chr(34) & " " & Chr(34) "exit" & Chr(34)

出于某种原因,我得到这个string的语法错误。 我在VBA方面的知识并不广泛,但是在过去的几个小时里,我经历了MSDN,似乎没有任何帮助。

我怀疑你需要更多的文件path包含空格的引号。 类似于strShell = "'C:\Program Files\WinSCP\WinSCP.exe' /console /command " & Chr(34) & ….

你也忘记了一些“ & ”像3dr行:
Chr(34) & "put " & ThisWorkbook.Path &
再次在这一行上,您可能需要用引号括住文件名!

最好的帮助是包含一个Debug.Print strShell并在VBE立即窗口(^ G)中观察结果

根据WinSCP的文档,你需要在你的命令中加双引号。 例如: WinSCP.exe /command "option batch abort"

所以在VBA中,这将是: "WinSCP.exe /command ""option batch abort"""