我在用VBA编写代码时遇到麻烦,这使我可以输入任何给定的日期,然后获得当前工作周的输出。我需要限制一下,如果日期是星期天到星期二,它将保留当前的工作日和年号,但是如果日期是星期三到星期六,那么将显示下一个工作周和年号。例如,我希望输入(5/28/19)的输出为201922或输入(5/29/19)的输出为201923,即使在技术上相同的工作周中也是如此。
在深入探讨之前,我确实有一个工作功能可以提供年份和工作周,但是我正在尝试调整该功能或添加一个单独的功能,该功能将根据给定的下一个工作周进行更改日期。
我是VBA的新手,但最近几天尝试进行一些研究。我以为我可以以某种方式输入日期,然后有两个输出,其中一个是年份和工作周,然后另一个是与该日期关联的数字(1代表星期日,2代表星期一,依此类推) 。我试图创建一个if if语句,该语句表示如果与该日期关联的数字是1、2或3,则工作周将保持不变。如果是其他任何数字,则该工作周将加1,以便移至下一个。如果有任何道理,我在尝试制作两个输出并连接它们时会遇到麻烦。
这是我尝试创建的代码,但一直无法完成。给出正确的工作周(不根据日期工作日改编工作周)的功能是WWV1
Function WWV2(WeekdayName As Integer)
Dim WWV1 As Integer
If WeekdayName(Date) = 1 Or 2 Or 3 Then WWV1 = WWV1
Else: WWV1 = WWV1 + 1
End Function
这为单元格提供了#NUM个!当我在该单元格中使用该函数时,我认为这是因为我需要以某种方式连接这两个函数。