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

如何在现有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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:40:06