Несоответствие типов (Ошибка 13) при использовании Sumifs - PullRequest
0 голосов
/ 01 марта 2020

Я хочу добавить значение всех ячеек в столбце 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)

Один из них должен быть правильным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...