0

我在 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,但是如果我取出空间并将它们放在一起,它就可以工作。

4

1 回答 1

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)
于 2013-01-17T15:48:43.593 回答