不明白为什么以下VBA代码段会抛出错误52

czc*_*ong 0 excel vba excel-vba

以下代码段抛出错误52 - 错误的文件名或数字,我不知道为什么:

Private Sub InitializeLogFile()
  Dim fileNumber As Integer

  filename = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
  LOG_FULL_FILENAME = "D:\data\" & Environ("USERNAME") & "\My Documents\" + filename + "_" + Format(Now, "yyyymmdd_hh:mm:ss") + ".log"

  MsgBox LOG_FULL_FILENAME

  fileNumber = FreeFile

  MsgBox fileNumber

  Open LOG_FULL_FILENAME For Append As #fileNumber

  Print #fileNumber, Date & " - " & ThisWorkbook.Name & " opened. "
  Print #fileNumber,

  Close #fileNumber
End Sub
Run Code Online (Sandbox Code Playgroud)

有人可以指出我的错误吗?

Sea*_*anC 6

错误在这一行:

LOG_FULL_FILENAME = "D:\data\" & Environ("USERNAME") & "\My Documents\" + filename + "_" + Format(Now, "yyyymmdd_hh:mm:ss") + ".log"
Run Code Online (Sandbox Code Playgroud)

具体来说,来自 Format(Now, "yyyymmdd_hh:mm:ss")

你不能拥有:文件名

文件名不能包含 \/:*?"<>|

尝试: Format(Now, "yyyymmdd_hhmmss")