如何将活动工作簿以指定名称保存到指定文件夹?(VBA新手求助)
修改后的VBA代码
Sub BackupWorkbook() ' 指定目标文件夹路径,请替换成你实际需要的文件夹 Dim targetFolder As String targetFolder = "C:\你的备份文件夹\" ' 注意路径末尾要加反斜杠 ' 检查文件夹是否存在,不存在则创建(避免报错) If Dir(targetFolder, vbDirectory) = "" Then MkDir targetFolder End If ' 组合文件名:固定前缀 + 日期(格式:Nov 11 2022) + 文件扩展名 Dim newFileName As String newFileName = "Dailycheck " & Format(Date, "mmm dd yyyy") & ".xlsm" ' 将当前活动工作簿的副本保存到指定文件夹 ActiveWorkbook.SaveCopyAs _ FileName:=targetFolder & newFileName End Sub
关键修改说明
- 指定目标文件夹:把
"C:\你的备份文件夹\"替换成你实际要保存的文件夹路径,比如"D:\Work Backups\Daily Checks\",一定要保证路径末尾有反斜杠\,否则会把文件夹名和文件名连在一起导致错误。 - 日期格式调整:用
Format(Date, "mmm dd yyyy")生成Nov 11 2022这样的日期格式,mmm代表英文月份缩写,dd是两位日期,yyyy是四位年份。 - 固定文件名前缀:直接用
"Dailycheck "作为文件名开头,和日期、扩展名组合成最终文件名。 - 切换到活动工作簿:原代码用的
ThisWorkbook是指代码所在的工作簿,如果你要备份的是当前激活的工作簿(不管代码在哪),就用ActiveWorkbook;如果代码就在要备份的工作簿里,用ThisWorkbook也可以,根据你的需求调整。 - 自动创建文件夹:加了检查文件夹是否存在的代码,如果目标文件夹不存在,会自动创建,避免因文件夹不存在而报错。
额外注意事项
- 确保你的工作簿格式是
.xlsm(启用宏的工作簿),如果是其他格式(比如.xlsx),要把代码里的.xlsm改成对应的扩展名,或者用ActiveWorkbook.FileExtension动态获取扩展名,比如:newFileName = "Dailycheck " & Format(Date, "mmm dd yyyy") & ActiveWorkbook.FileExtension - 保存前确保工作簿已经被正常打开(指定文件夹路径正确的话,无需提前保存工作簿)。
内容的提问来源于stack exchange,提问作者Sonny
相关产品推荐
相关产品推荐

