如何找出下个星期六或当前星期六的date?
我正在写Excel的一些VBA,我需要找出当前或即将到来的星期六的date
所以如果是星期五,我需要得到明天的date(星期六)。
如果今天是星期六,那么我只想要今天的日子。
如果是星期天,那么我需要昨天的约会。
如果是星期一,那么下星期六
我想知道是否有任何东西在Excel或VBA,可以帮助我做到这一点
这里有一些容易理解的东西,使用vbDays
variables和Select Case
。
一般来说,你有三个例子 – 今天是星期六,星期天或者其他。 这些都在select案例中介绍。
函数是date,因此在Excel中它将被格式化为标准date结果。
Option Explicit Public Function SaturdayIsComing() As Date Select Case Weekday(Now) Case vbSaturday SaturdayIsComing = Now Case vbSunday SaturdayIsComing = DateAdd("d", -1, Now) Case Else SaturdayIsComing = DateAdd("d", vbSaturday - Weekday(Now), Now) End Select End Function
在Excel中,你可以使用这个公式:
=TODAY()-WEEKDAY(TODAY())+IF(WEEKDAY(TODAY())>1, 7, 0)
如果你不只是使用Excel,并需要其他VBA项目,这给你想要的结果。
Private Function saturdayFunction() Dim dt As String Dim lpDT As String lpDT = Format(Now, "yyyy/MM/dd") If Format(Now, "DDDD") = "Saturday" Then dt = Format(Now, "yyyy/MM/dd") ElseIf Format(Now, "DDDD") = "Sunday" Then dt = Format(Now - 1, "yyyy/MM/dd") Else Do While Not dt = "Saturday" dt = Format(CDate(lpDT) + 1, "DDDD") lpDT = Format(CDate(lpDT) + 1, "yyyy/MM/dd") Loop dt = lpDT End If saturdayFunction = dt End Function
尝试这个。 将单元格格式化为“date”
=TODAY()+6-WEEKDAY(TODAY(),2)