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

Excel VBA将日期设为指定最近日期:是否有更优实现方案?

自定义VBA实现将日期转为最近指定星期几

在调度流程中,需将Excel中的部分日期设置为最近的星期三。试过多个参考方案都无法始终得到预期结果,因此自行编写了可适配任意指定星期几的VBA子过程。该子过程是自定义功能区按钮触发的大型宏流程的一部分,输入日期来自数组,必须使用VBA修改。

实现代码

Sub SetNextWed()

    Range("A6").Activate
    Do Until ActiveCell.Value = ""
        SetToNextDate ActiveCell.Value, vbWednesday, 2
        ActiveCell.Offset(1, 0).Activate
    Loop
End Sub

Sub SetToNextDate(MyDate As Date, DayOfWeek As Integer, Column As Integer)
    Dim dNext_Wednesday As Date

    dNext_Wednesday = MyDate

    Select Case Weekday(MyDate)
        Case DayOfWeek
            dNext_Wednesday = MyDate
        Case Else
            dNext_Wednesday = MyDate + DayOfWeek - Weekday(MyDate)
            If MyDate > dNext_Wednesday Then
                dNext_Wednesday = MyDate + ((DayOfWeek + 7) - Weekday(MyDate))
            End If
    End Select
End Sub

曾尝试的参考方案

  • 查找下一个星期三日期的VBA实现方案
  • 关于用VBA确定下一个及最近周一日期的讨论方案
  • 关于用VBA查找下一个周六或当前周六日期的方案

内容的提问来源于stack exchange,提问作者Gerardo Hernandez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:31:04