如何找出下个星期六或当前星期六的date?

我正在写Excel的一些VBA,我需要找出当前或即将到来的星期六的date

所以如果是星期五,我需要得到明天的date(星期六)。

如果今天是星期六,那么我只想要今天的日子。

如果是星期天,那么我需要昨天的约会。

如果是星期一,那么下星期六

我想知道是否有任何东西在Excel或VBA,可以帮助我做到这一点

这里有一些容易理解的东西,使用vbDaysvariables和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)