gpt4 book ai didi

Excel 逻辑问题

转载 作者:行者123 更新时间:2023-12-04 22:07:32 25 4
gpt4 key购买 nike

我开发了一个简单的 vba 函数来计算是否有人在下类后工作。这是我写的原始查询:

Public Function AfterHours(StartTime As Date, EndTime As Date, ActivityDate As Date)

AfterHours = False

If (Weekday(ActivityDate) <> 1 OR Weekday(ActivityDate) <> 7) Then
If Hour(StartTime) >= 19 Or Hour(EndTime) < 7 Then
AfterHours = True
End If
Else
AfterHours = True
End If
End Function

但是,此查询不会选择周末在正常工作时间工作的员工。如果我将其更改为:
Public Function AfterHours(StartTime As Date, EndTime As Date, ActivityDate As Date)

AfterHours = False

If (Weekday(ActivityDate) = 1 Or Weekday(ActivityDate) = 7) Then
AfterHours = True
Else
If Hour(StartTime) >= 19 Or Hour(EndTime) < 7 Then
AfterHours = True
End If
End If
End Function

查询功能正常。两者的逻辑是相同的,只是颠倒了。在第一个函数中,如果不是周末,则应测试是否在营业时间以外,否则应标记为周末。第二个函数检查是否是周末并标记它,否则检查它是否在工作时间之外。

我不明白为什么这些查询会返回不同的结果。

最佳答案

您的第一个 If陈述是错误的。

If (Weekday(ActivityDate) <> 1 OR Weekday(ActivityDate) <> 7) Then

因为你使用 Or这将永远是正确的。使用 And反而。

关于Excel 逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com