You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将活动工作簿以指定名称保存到指定文件夹?(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:55:20