簡體   English   中英

如何在 Excel 中使用 VBA 將日期和時間添加到文件名

[英]How to Add Date and Time To File Name Using VBA in Excel

感謝 Siddharth Rout 在這篇文章中我學會了如何將工作表保存到新的工作表中。 現在我的問題是如何添加文件創建的日期和時間,例如:

TestSheet_25May2013_5pm.xls

Sub SaveSheet()
    Dim FName As String

    ActiveSheet.Copy
    With ActiveSheet.UsedRange
        .Copy
        .PasteSpecial xlValues
        .PasteSpecial xlFormats
    End With
    Application.CutCopyMode = False


    FName = "C:\Users\somebody\Documents\TestSheet" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsm"
    ActiveWorkbook.SaveAs Filename:=FName, _
                          FileFormat:=xlOpenXMLWorkbookMacroEnabled



End Sub

你能告訴我怎么做嗎?

改變

FName = "C:\Users\somebody\Documents\TestSheet" & _
        Format(Range("E19"), "mmm-d-yyyy") & ".xlsm"

FName = "C:\Users\somebody\Documents\TestSheet_" & _
        Format(Date, "ddmmmyyyy") & ".xlsm"

如果您從Range("E19")中選擇日期,請確保單元格具有有效日期。在這種情況下,代碼變為

FName = "C:\Users\somebody\Documents\TestSheet_" & _
        Format(Range("E19"), "ddmmmyyyy") & ".xlsm"

為了完成 Siddharth 的解決方案,下面是在文件名中包含時間的代碼:

Function SaveDateTime() as String

    Dim SaveTime As Integer
    SaveTime = Round(Timer / 3600, 0)

    Dim AMPM As String: AMPM = "AM"
    If SaveTime >= 12 Then
        AMPM = "PM"
        If SaveTime > 12 Then
            SaveTime = SaveTime - 12
        End If
    End If

    SaveDateTime = "C:\Users\somebody\Documents\TestSheet_" & _
                    Format(Date, "ddmmmyyyy") & "_" & _
                    SaveTime & AMPM & ".xlsm"

End Function

請注意,如果您希望時間向下舍入而不是四舍五入,則可以將Round()更改為Int() 此外,請注意您將運行此程序的 PC 上的語言設置,因為日期格式取決於它。

編輯:更簡單的解決方案

Function SaveDateTime() as String

    SaveDateTime = "C:\Users\somebody\Documents\TestSheet_" & _
                    Format(Date, "ddmmmyyyy") & "_" & _
                    Format(Time, "hAM/PM") & ".xlsm"

End Function

我的以下工作正常,但想顛倒順序。 首先是文件名,其次是日期和時間。 到目前為止還沒有想出辦法。

Sub SaveToLocations()
' Saves active file to current plus two other backup locations, appends system date and time in front of file name in backup locations.

    Dim datim As String
    datim = Format(CStr(Now), "yyyy_mm_dd_hh_mm_ss_")

    ActiveWorkbook.SaveCopyAs "I:\FilesBackup\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.SaveCopyAs "E:\CS Docs\FilesBackupCS\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.Save
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM