2013-12-17 41 views
2

感谢Siddharth Rout在this Post我学会了如何将工作表保存到新工作表。现在的问题是我如何添加文件创建类似的日期和时间:如何在Excel中使用VBA添加日期和时间到文件名

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 

可以请你让我知道如何做到这一点?

回答

4

变化

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" 
+0

感谢亚洲时报Siddharth,它是完美的帮助 – Behseini

+0

很高兴能帮助:) –

4

要完成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 

请注意,您可以通过Int()如果你想要的时间,而不是圆刚轮的下跌改变Round()。另外,请注意PC上的语言设置,因为日期格式取决于它。

编辑:即使是简单的解决方案

Function SaveDateTime() as String 

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

End Function 
相关问题