由于亚洲时报Siddharth溃败在这个帖子我学会了如何纸张保存到一个新的工作表。现在我的问题是如何添加文件创建的日期和时间,例如:
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