我正在尝试添加代码来保存基于 3 个单元格值的工作簿。一点背景知识,我们工作中有一个计划员,我们需要进行日常备份,或者根据需要进行复制,而不改变工作簿的原始副本。我尝试了几个代码,但是运气不佳。
单元格 A2 示例“05-2024” 单元格 B2 示例“规划器” 单元格 C2 是时间戳 =NOW() *日期和时间格式自定义为显示 mm-dd hhmm 或 05-08 1200
Sub SaveWorkbookAsXlsm()
Dim wb As Workbook
Dim folderPath As String
Dim fileName As String
Set wb = ActiveWorkbook
folderPath = "C:\Art\"
fileName = wb.Sheets("Sheet1").Range("A2").Value & "_" & _
wb.Sheets("Sheet1").Range("B2").Value & "_" & _
wb.Sheets("Sheet1").Range("C2").Value & ".xlsm"
wb.SaveAs fileName:=folderPath & fileName, FileFormat:=52
End Sub
有更好的方法吗?
我尝试了上面的代码,它不起作用。我正在尝试保存基于单元格 A2、B2 和 C2 的工作簿。当我们开始新的一个月时,我们会创建一份计划表的副本,并将其命名为 05-2024 Planner。我们需要定期保存日期和时间的备份。我正在尝试对工作簿进行编码以根据单元格值进行保存以简化过程。
SaveCopyAs
将工作簿的副本保存到文件中,但不会修改内存中打开的工作簿。 SaveAs
是另一种方法。它将更改 Excel 中的工作簿。微软文档:
Sub SaveWorkbookAsXlsm()
Dim wb As Workbook
Dim folderPath As String
Dim fileName As String
Set wb = ActiveWorkbook
folderPath = "C:\Art\"
With wb.Sheets("Sheet1")
fileName = .Range("A2").Value & "_" & _
.Range("B2").Value & "_" & _
Format(Now(), "mm-dd hhmmss") & ".xlsm"
End With
wb.SaveCopyAs FileName:=folderPath & fileName
End Sub
Sub SaveWorkbookAsXlsm()
Dim wb As Workbook
Dim folderPath As String
Dim fileName As String
Const EXT_NAME = ".xlsm"
Set wb = ActiveWorkbook
folderPath = "C:\Art\"
fileName = Replace(wb.Name, EXT_NAME, "_" & Format(Now(), "mm-dd hhmmss") & EXT_NAME)
wb.SaveCopyAs FileName:=folderPath & fileName
End Sub