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"""