Я создаю инструмент, который извлекает данные из SQL, а затем извлекает данные в зависимости от дат и пользователей, связанных с этими данными.Мне это нужно для работы с широким кругом пользователей.
У меня есть код, который в настоящее время имеет вложенный цикл for.Используя переменные lastrow
, он проверяет, равно ли значение ячейки и значение первого цикла, например, .range("b" & R)
, значению ячейки и значению второго цикла - .range("H" & i)
.В этом есть оператор if, например
Если дата в range("E"&r)
= дата в range("G"&i)
и lcase(range("A" & r) = lcase(range("H" & y) then...
Мне нужно, чтобы значение y
изменилось в основномскажем if G&i = H&y or H&y
и так далее, пока не доберусь до конца моего диапазона.
Sub mysub(sheet As String)
Dim i As Long
Dim r As Long
Dim y As Long
Dim lastRow As Long
Dim lastRow2 As Long
Dim hours As Single
Dim lastRow3 As Long
Application.ScreenUpdating = False
Sheets(sheet).Activate
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
lastRow2 = ActiveSheet.Range("AD" & Rows.Count).End(xlUp).Row
lastRow3 = Sheets("mysheet").Range("B" & Rows.Count).End(xlUp).Row
For r = 4 To lastRow2
For i = 2 To lastRow
For y = 2 To lastRow3
If ActiveSheet.Range("E" & i).Value = ActiveSheet.Range("AH" & r) And _
LCase(ActiveSheet.Range("A" & i).Value) = LCase(Sheets("agents").Range("B" & y).Value) Then
hours = hours + ActiveSheet.Range("D" & i).Value
End If
Next y
Next i
ActiveSheet.Range("AE" & r).Value = hours
ActiveSheet.Range("AE" & r).NumberFormat = "[h]:mm"
hours = 0
Next r
Application.ScreenUpdating = True
End Sub
Любая помощь в этом будет огромной помощью.