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

如何在VBA中获取日期对应的星期数字(周一为1周日为7)

在VBA中获取周一为1的星期数字的简便方法

嘿,这个需求完全不用绕弯子遍历星期名称列表,有好几款直接的实现方式,给你整理两个最实用的:

方案1:用Weekday函数(首推!)

VBA自带的Weekday函数本身就支持自定义一周的起始日,完美匹配你的规则:

Dim dayNumber As Integer
dayNumber = Weekday(Date, vbMonday) ' 周一返回1,周二返回2……周日返回7

这里的vbMonday是VBA内置的常量,专门用来指定“周一为一周第一天”。如果以后需要调整起始日,还有vbSunday(默认规则,周日=1)、vbTuesday等常量可选,非常灵活。

方案2:通过Format函数做转换

要是你更倾向于用Format函数,也可以对它的默认返回值做个小调整:
默认情况下,Format(Date, "w")会返回周日=1、周一=2……周六=7的数字,我们只需要简单转换就能适配你的规则:

Dim dayNumber As Integer
' 写法1:用IIf判断周日的情况
dayNumber = IIf(Format(Date, "w") = 1, 7, Format(Date, "w") - 1)

' 写法2:用取模运算更简洁
dayNumber = (Format(Date, "w") + 5) Mod 7 + 1

对比下来,Weekday函数是最直观、最容易维护的方案,推荐优先使用它哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:33:13