如何在现有VBScript中添加以上一个工作日日期重命名Excel文件的命令
修改后的VBScript代码:按上一工作日重命名保存Excel工作簿
以下是添加了按上一工作日日期重命名保存功能的代码,替换原有的wb.Save步骤,保留原文件的同时生成带日期的新文件:
' 输入Excel文件的完整路径 ExcelFilePath = "C:\Users\greeleym\OneDrive - Legrand France\Desktop\ORCA Refresh.xlsm" ' 输入Excel文件内的模块/宏名称 MacroPath = "Module1.OrcaRefresh" ' 创建Excel实例 Set ExcelApp = CreateObject("Excel.Application") ' 设置Excel实例是否可见 ExcelApp.Visible = True ' 可改为"False"后台运行 ' 禁用应用启动提示(如更新外部链接) ExcelApp.DisplayAlerts = False ' 打开Excel文件 Set wb = ExcelApp.Workbooks.Open(ExcelFilePath) ' 执行刷新宏 ExcelApp.Run MacroPath ' --- 新增:计算上一个工作日并生成新文件名 --- ' 获取当前日期 currentDate = Date() ' 先减去1天得到初始的"上一日" previousDay = DateAdd("d", -1, currentDate) ' 判断上一日是否为周末,调整为工作日 Select Case Weekday(previousDay, vbMonday) ' vbMonday表示周一为一周第一天 Case 6 ' 周六 previousDay = DateAdd("d", -2, currentDate) Case 7 ' 周日 previousDay = DateAdd("d", -1, currentDate) End Select ' 格式化日期为YYYYMMDD格式 formattedDate = Year(previousDay) & Right("0" & Month(previousDay), 2) & Right("0" & Day(previousDay), 2) ' 拆分原文件路径,生成新文件名 ' 获取原文件所在目录 fileDir = Left(ExcelFilePath, InStrRev(ExcelFilePath, "\")) ' 文件扩展名 fileExt = Mid(ExcelFilePath, InStrRev(ExcelFilePath, ".")) ' 新文件名 newFilePath = fileDir & "ORCA Refresh " & formattedDate & fileExt ' 另存为带日期的新文件 wb.SaveAs newFilePath ' --- 新增部分结束 --- ' 恢复显示提示 ExcelApp.DisplayAlerts = True ' 关闭文件 wb.Close ' 退出Excel实例 ExcelApp.Quit ' 弹出完成提示 MsgBox "自动任务已成功执行于 " & TimeValue(Now), vbInformation
关键修改说明:
- 上一工作日计算:通过
DateAdd和Weekday函数判断日期是否为周末,自动调整到最近的工作日(注:未包含节假日处理,若需支持节假日需额外添加日期判断逻辑) - 文件名生成:拆分原文件的目录和扩展名,拼接格式化后的
YYYYMMDD日期生成新路径 - 保存逻辑:使用
SaveAs方法生成新文件,原文件会被保留;若需覆盖原文件,可将newFilePath改为原路径,但不建议此操作(会丢失原始文件)
内容的提问来源于stack exchange,提问作者user29930398
相关产品推荐
相关产品推荐

