我想在Q列中添加日期在Z列中的Now和30分钟前之间并且在Y列中具有特定名称的Q列中所有单元格的值。
dim nu as Date
dim ThirtyMinAgo as Date
dim currentBestTopThree as Integer
nu = WorksheetFunction.RoundDown(Now * 48, 0) / 48
ThirtyMinAgo = nu - 1 / 48
currentBestTopThree = _
Application.SumIfs(Sheets("topthreecheck").Range("Y2:Y" & Rows.Count).End(xlUp).Row, employeelist(i), _
Sheets("topthreecheck").Range("Z2:Z" & Rows.Count).End(xlUp).Row, "<" & nu, _
Sheets("topthreecheck").Range("Z2:Z" & Rows.Count).End(xlUp).Row, ">=" & ThirtyMinAgo, _
Sheets("topthreecheck").Range("Q2:Q" & Rows.Count).End(xlUp).Row)
employeelist(i)
是一个数组,其中包含Y列中的所有唯一名称。
i
是For
循环的当前迭代,该循环在1 and Ubound(employeelist)
之间
Z列包含格式为“ 2020-03-01 08:32:23”的日期
Y列包含名称
Q列包含数字
SumIfs行给我错误
类型不匹配(错误13)
我试图对日期进行硬编码:
currentBestTopThree = Application.SumIfs(Sheets("topthreecheck").Range("Z2:Z" & Rows.Count).End(xlUp).Row, #2/25/2020 9:30:00 AM#, _
Sheets("topthreecheck").Range("Q2:Q" & Rows.Count).End(xlUp).Row)
但是它仍然显示错误。
我也尝试过:
If Sheets("topthreecheck").Range("Z2") = #2/25/2020 9:30:00 AM# Then
End If
那行并没有给我输入Type Mismatch错误。
有人知道这是怎么回事吗?
就好像代码试图对日期求和。我猜这就是为什么会出现错误。由于currentBestTopThree
是整数。但是我都尝试过
SumIfs(Sum_range, Range1, Criteria1)
和
SumIfs(Range1, Criteria1, Sum_range)
其中之一应该是正确的!