【发布时间】:2019-05-29 09:42:07
【问题描述】:
我在用 VBA 编写代码时遇到了问题,该代码允许我输入任何给定的日期,然后输出当前工作周的输出。我需要限制日期是否为周日至周二,它将保留当前的工作周和年份,但如果日期是周三至周六,则将显示下一个工作周和年份。例如,我希望输入 (5/28/19) 并且输出为 201922 或输入 (5/29/19) 输出为 201923,即使它在技术上是相同的工作周。
在深入之前,我确实有一个提供年份和工作周的工作函数,但我正在尝试调整该函数或添加一个单独的函数,该函数将根据给定的下一个工作周更改日期。
我是 VBA 的新手,但在过去的几天里我试图做一些研究。我在想我可以以某种方式输入一个日期,然后有两个输出,一个是年份和工作周,另一个是与该日期关联的数字(1 代表星期日,2 代表星期一,依此类推) .我尝试创建一个 if then 语句,说明如果与该日期关联的数字是 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!当我在该单元格中使用该函数时,我认为这是因为我需要以某种方式连接这两个函数。
【问题讨论】: