Я применил фильтр ниже к листу Excel, который автоматически фильтрует столбец O на основе даты начала и даты окончания.
sht1.Range("$A$1:$X$3432").AutoFilter Field:=15, Criteria1:= _
">=" & CDbl(StartDate), Operator:=xlAnd, Criteria2:="<=" & CDbl(EndDate)
здесь я вычислил видимые отфильтрованные строки на основе даты начала и даты окончания .
With sht1
Total_DCR = WorksheetFunction.Subtotal(102, ActiveSheet.Range("O1:O5000").Columns(1))
Debug.Print Total_DCR
End With
Dim i, delay_count As Integer
Теперь я хочу сравнить даты, представленные в отфильтрованных столбцах O и X, для значений, превышающих logi c. Если O2> X2, увеличьте счетчик на 1.
For i = 2 To Total_DCR
If sht1.Range("O" & i).Value > sht1.Range("X" & i).Value Then
delay_count = delay_count + 1
Debug.Print delay_count
End If
Next
После выполнения вышеуказанного кода сравнения счетчик дат из столбца O показывает неверные данные. Я чувствую, что он также учитывает скрытые строки. В столбце O указано 79 дат, которые находятся между датой начала и датой окончания. когда я выбираю большее, чем logi c между отфильтрованными O и X для большего, чем logi c, используя IF (O2> X2, «YES», «NO») logi c, количество строк больше чем равно 53. I хотите реализовать то же самое, используя код vba. Но я увеличиваю количество строк до 76. Я не знаю, что здесь не так. любезно помогите