0

次のスニペットはエラー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

誰かが私のエラーを指摘してもらえますか?

4

2 に答える 2

6

エラーは次の行にあります:

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

具体的には、Format(Now, "yyyymmdd_hh:mm:ss")

:ファイル名にを含めることはできません

ファイル名に含めることはできません\/:*?"<>|

試す:Format(Now, "yyyymmdd_hhmmss")

于 2012-10-31T16:42:00.507 に答える
0

まず、Option Explicitすべての変数を使用して初期化します。

第二に、ワークブック名​​が例えばである場合。「Book1」の場合、(InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1)結果は-1になります。また、呼び出すとLeft(..., -1)ランタイムエラーが発生します。

デバッガーを使用すると、表示されます。

于 2012-10-31T15:48:16.223 に答える