Здравствуйте! Помогите пожалуйста найти ошибку в коде. Задача состоит в том, что нужно просуммировать промежуточное время (разница между выходом и входом сотрудника за день ), тем самым получим количество часов, которое сотрудник был на работе. На листе "vse" находятся номера всех сотрудников, дата входа/выхода и промежуточное время, а на "list" нужно вывести количество часов за день. Я использовала функцию СУММЕСЛИМН, но в результате получается 0. [vba]
Код
Sub ЧАСОВ_ЗА_ДЕНЬ() Worksheets("list").Activate Dim m As Date, i As Integer, j As Integer r1 = Cells(Rows.Count, "c").End(xlUp).Row r2 = Cells(4, Columns.Count).End(xlToLeft).Column r = Sheets("vse").Cells(Rows.Count, "l").End(xlUp).Row For j = 5 To r1 k = Cells(j, 3) i = 5 While i <= r2 m = Cells(4, i) Cells(j, i) = Application.WorksheetFunction.SumIfs(Sheets("vse").Range("l:l"), Sheets("vse").Range("b:b"), "=" & k, Sheets("vse").Range("c:c"), "=" & m) i = i + 1 Wend Next j MsgBox "Работа кода завершена!" End Sub
[/vba]
Здравствуйте! Помогите пожалуйста найти ошибку в коде. Задача состоит в том, что нужно просуммировать промежуточное время (разница между выходом и входом сотрудника за день ), тем самым получим количество часов, которое сотрудник был на работе. На листе "vse" находятся номера всех сотрудников, дата входа/выхода и промежуточное время, а на "list" нужно вывести количество часов за день. Я использовала функцию СУММЕСЛИМН, но в результате получается 0. [vba]
Код
Sub ЧАСОВ_ЗА_ДЕНЬ() Worksheets("list").Activate Dim m As Date, i As Integer, j As Integer r1 = Cells(Rows.Count, "c").End(xlUp).Row r2 = Cells(4, Columns.Count).End(xlToLeft).Column r = Sheets("vse").Cells(Rows.Count, "l").End(xlUp).Row For j = 5 To r1 k = Cells(j, 3) i = 5 While i <= r2 m = Cells(4, i) Cells(j, i) = Application.WorksheetFunction.SumIfs(Sheets("vse").Range("l:l"), Sheets("vse").Range("b:b"), "=" & k, Sheets("vse").Range("c:c"), "=" & m) i = i + 1 Wend Next j MsgBox "Работа кода завершена!" End Sub