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
相关产品推荐
相关产品推荐

