Beh*_*ini 3 excel vba excel-2007 excel-vba
由于亚洲时报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
Run Code Online (Sandbox Code Playgroud)
你能让我知道怎么做吗?
小智 6
我有以下工作正常但想颠倒顺序。首先是文件名,其次是日期和时间。目前还没有想出办法。
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
Run Code Online (Sandbox Code Playgroud)
更改
FName = "C:\Users\somebody\Documents\TestSheet" & _
Format(Range("E19"), "mmm-d-yyyy") & ".xlsm"
Run Code Online (Sandbox Code Playgroud)
至
FName = "C:\Users\somebody\Documents\TestSheet_" & _
Format(Date, "ddmmmyyyy") & ".xlsm"
Run Code Online (Sandbox Code Playgroud)
如果要从中选择日期,请Range("E19")确保该单元格具有有效日期。在这种情况下,代码将变为
FName = "C:\Users\somebody\Documents\TestSheet_" & _
Format(Range("E19"), "ddmmmyyyy") & ".xlsm"
Run Code Online (Sandbox Code Playgroud)
为了完成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
Run Code Online (Sandbox Code Playgroud)
请注意,你可以改变Round()的Int(),如果你想要的时间,而不是圆的圆刚下来。另外,请注意将在其上运行的PC上的语言设置,因为日期格式取决于它。
编辑:更简单的解决方案
Function SaveDateTime() as String
SaveDateTime = "C:\Users\somebody\Documents\TestSheet_" & _
Format(Date, "ddmmmyyyy") & "_" & _
Format(Time, "hAM/PM") & ".xlsm"
End Function
Run Code Online (Sandbox Code Playgroud)