Excel VBA - 将日期和时间添加到文件名为FILENAME_MMDDYY_HHMMSS

Excel VBA - 将日期和时间添加到文件名为FILENAME_MMDDYY_HHMMSS

几周前,我发布了一篇关于使用 VBA 提示我在使用宏保存 excel 文件时添加文件名的文章。非常感谢大家的帮助。我成功了!

现在我又有另一个类似的问题。

我如何在 VBA 中获取月份、日期、年份 --以及 -- 小时、分钟、秒,然后将其添加到文件名中?为什么?因此,当我单击宏将其保存为 excel 文件和 PDF 时,文件名是“带时间戳的”,并消除了“哦不!我用另一个文件覆盖了该文件!!”的任何问题。

我尝试了一些方法(再说一次,我绝不是 VBA 程序员 [我是一名 RN !!})但就是无法获得所有信息。

Dim mydate 作为文本 Mydate = date(now) Dim month 作为文本 mymonth = month(now) ..小时、分钟、秒和年份也类似

然后将所有这些连接在一起作为.....文本??....字符串,然后将其添加到文件名中

在使用思维过程...

  1. 我正在更改文件...更改数据,更改字体.....

  2. 日期时间是:2023 年 4 月 21 日上午 9:02;12

  3. <click the macro>“代码” (哈哈哈!!)

  4. MMDDYY以(042123) 和HHMMSS(090212) 格式获取小时、分钟等

  5. 将其分配给一个变量...将其命名为 FILESTAMP

  6. 此时 FILESTAMP 为 042123_090212

  7. 将其连接到文件名:FILENAME_042123_090212

  8. 文件保存为“FILENAME_041223_090212.xls”

  9. 继续处理文件...进行修改....等等

  10. 五分钟过去了……

  11. 单击宏来保存等等。

  12. 保存文件现在名为 FILENAME_042123_090712 <== “07”,因为已经过去了 5 分钟(2+5=7)

我将其用于财务工作表,我认为这是确保保存文件的好方法

任何帮助表示感谢

谢谢

答案1

请尝试以下操作:

Sub MakeBackupFile()
Rem Save backup copy (if possible)
    Dim strPath
    Dim strFilename

On Error GoTo ErrorHandler
    strPath = Application.ActiveWorkbook.Path
    If strPath Like "http*" Then Exit Sub   ' Saving copy is not working in SharePoint
    strPath = strPath & "\Backups\"
    If Dir(strPath, vbDirectory) = "" Then MkDir strPath
    If Dir(strPath, vbDirectory) = "" Then Exit Sub ' Cannot create subfolder Backups
    strFilename = Replace(ThisWorkbook.Name, ".", "_" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & ".")

    ThisWorkbook.SaveCopyAs strPath & strFilename
Exit Sub

ErrorHandler:
'    MsgBox "Make sure there is a subfolder named 'Backups' in the folder that holds this file."
End Sub

请注意,宏不会保存当前文件,而是在备份子目录中创建带有时间戳的副本。时间戳不是您要求的 - 日期写在年月日顺序。这样,您只需按名称对文件进行排序,即可按正确的顺序获取文件(在MMDDYY,按名称排序会导致文件顺序错误)

相关内容