我在excel宏中有以下代码。我需要做的就是在我的字符串和格式之外的日期字符串之间放一个空格,但是,如果我删除了字符串,我只得到字符串部分,我只得到明显的日期。
filenamestring = "CMC_Rates " & Format(Now(), "yyyymmdd")
任何想法?
这里还有更多代码
Dim filenamestring As String
Dim location As String
Dim passparam As String
location = Year(DateTime.Now) & "/" & Month(DateTime.Now)
filenamestring = "CMC_Rates " & Format(Now(), "yyyymmdd ") & Format(Range("EffTime").Value, "hhmm AMPM") & ".pdf"
passparam = location & "/" & filenamestring
Call Shell(Environ$("COMSPEC") & " /c \\atlanta2-0\MKTG\Rates\SaveFile.bat " & filenamestring, vbNormalFocus)
SaveFile.bat中有这个
pscp -batch -pw password filename.xlsx admin@172.17.1.5:/Path/%1
当它打开蝙蝠时它表示参数只是CMC_Rates,但是如果我取出空间并将它们放在一起就可以了。
答案 0 :(得分:2)
问题在于这一行:(为了便于阅读而分开)
Call Shell(Environ$("COMSPEC") _
& " /c \\atlanta2-0\MKTG\Rates\SaveFile.bat " _
& filenamestring, vbNormalFocus)
当Excel调用批处理文件时, COMSPEC 解释程序将文件名视为多个参数,因为空格用作分隔符。要指出文件名是一个参数,而不是很多,它需要用引号括起来“
这会将行更改为:
Call Shell(Environ$("COMSPEC") _
& " /c \\atlanta2-0\MKTG\Rates\SaveFile.bat " _
& chr(34) & filenamestring & chr(34), vbNormalFocus)