复制文件:带有FileSystemObject的ThisWorkbook.Path给出错误的文件名或数字错误

时间:2019-03-25 13:37:36

标签: excel vba

因此,在保存到我的VBA代码正在使用的当前XML文件之前,我想在VBA中创建XML文件的基于时间戳的备份。我打算这样做:

Sub CreateBackup()
    Dim objFSO As FileSystemObject
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    oldFilePath = ThisWorkbook.Path & "\DEMO.xml"
    newFilePath = ThisWorkbook.Path & "\DEMO" & Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss") & ".xml.bak"
    objFSO.CopyFile oldFilePath, newFilePath
End Sub

但是,每次我得到Bad Filename or Number error时。我仔细检查了一下(使用调试器)我的变量正在读取带有filename的正确文件路径。有什么作用?

1 个答案:

答案 0 :(得分:2)

文件名中不允许

:

替换

Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")

Format$(DateTime.Now, "yyyy-MM-dd hh_mm_ss")

例如。

请注意,使用Format$()返回的是字符串而不是变体(使用Format())。