Excel VBA 中的字符串连接因 运行 时间错误而失败
String concatenation in Excel VBA failing with run-time error
为什么:
sDesktopPath = Environ("USERPROFILE") & "\Desktop\"
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
sSuffix = "_1Sheet_" & sDateTimeNow
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
工作没有问题,但是:
sDesktopPath = Environ("USERPROFILE") & "\Desktop\"
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
sSuffix = "_1Sheet_" & sDateTimeNow
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & sTimeStamp & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
因运行时错误而失败?
如果我使用 sSuffix
代替 "_1sheet_" & TimeStamp
,我会遇到同样的问题。
VBA 编辑器将错误显示在 Export...
语句的最后一行,但该行没有任何变化,我看不到它之前发生的任何变化会破坏语法。
每当发生这种情况时,请尝试调试整个字符串。因此:
Debug.Print sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & sTimeStamp & ".pdf"
您会看到 sTimeStamp
是 "illegal",包含 :
。因此,将时间戳从:
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
收件人:
sTimeStamp = Format(Now(), "yyyymmdd-hhnn")
为什么:
sDesktopPath = Environ("USERPROFILE") & "\Desktop\"
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
sSuffix = "_1Sheet_" & sDateTimeNow
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
工作没有问题,但是:
sDesktopPath = Environ("USERPROFILE") & "\Desktop\"
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
sSuffix = "_1Sheet_" & sDateTimeNow
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & sTimeStamp & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
因运行时错误而失败?
如果我使用 sSuffix
代替 "_1sheet_" & TimeStamp
,我会遇到同样的问题。
VBA 编辑器将错误显示在 Export...
语句的最后一行,但该行没有任何变化,我看不到它之前发生的任何变化会破坏语法。
每当发生这种情况时,请尝试调试整个字符串。因此:
Debug.Print sDesktopPath & ActiveSheet.Range("E3").Value & "_1Sheet_" & sTimeStamp & ".pdf"
您会看到 sTimeStamp
是 "illegal",包含 :
。因此,将时间戳从:
sTimeStamp = Format(Now(), "yyyymmdd-hh:nn")
收件人:
sTimeStamp = Format(Now(), "yyyymmdd-hhnn")