У меня есть еженедельный отчет, из которого я получаю по запросу, сколько часов было сообщено в определенный день, а также за целую неделю.Допустим, вы указали 9 часов в каждый рабочий день недели и 45 в целом за неделю, поэтому я получаю столбец C на листе 1 с датой дня, скажем 25/03/2019, а в столбце D - часы этого дня.это будет 9, а в столбце F общее количество дней недели, то есть 45.
В Sheet2 я получаю все даты дней этой недели, поэтому у меня будет 5 строк с информацией.Столбец F из Sheet1 вызывает все эти значения и добавляет их.У меня проблема, когда я пытаюсь получить два дня из одной недели, хотя Sheet2 работает правильно и дает мне два набора данных, и столбец D из Sheet1 тоже, столбец F вместо 45 для каждой стрелки, получить 90, потому что этосчитает две недели равными.
Есть ли способ сбросить счет или получить неделю только один раз?
Function WeekHours() As Double
Dim addHours As Double
Dim lRow As Integer
Dim weeks() As Integer
lRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
ReDim weeks(1 To lRow - 1)
For i = 2 To lRow
weeks(i - 1) = WorksheetFunction.WeekNum(Sheet1.Cells(i, "C"), vbMonday)
'MsgBox lRow
Next i
lRow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To sizeOf(weeks)
addHours= 0
For j = 2 To lRow
If WorksheetFunction.WeekNum(Worksheets("Sheet2").Cells(j, "B"), vbMonday) = weeks(i) Then
addHours= addHours+ Worksheets("Sheet2").Cells(j, "C").Value
Sheet1.Cells(i + 1, "F") = addHours
End If
Next j
addHours= 0
Next i
WeekHours = addHours
End Function