Я хочу добавить значение всех ячеек в столбце Q с датой от Сейчас до тридцати минут, а go в столбце Z И с определенным именем в столбце Y.
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
l oop, которая проходит между 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
И эта строка не дает мне ошибку несоответствия типов.
Кто-нибудь знает, что здесь происходит?
Как будто код пытается суммировать даты. Я думаю, именно поэтому он дает ошибку. Поскольку currentBestTopThree
является целым числом. Но я пробовал оба
SumIfs(Sum_range, Range1, Criteria1)
и
SumIfs(Range1, Criteria1, Sum_range)
Один из них должен быть правильным!