Я хочу l oop по всем строкам в активном листе и сравнить значения столбца.
Однако он пропускает каждое второе значение.
Рабочий лист выглядит так :
Код:
Sub test()
Dim ws As Worksheet
Dim r As Range
Dim total As Integer
Dim value As String
Set ws = ActiveSheet
total = 0
For Each r In ws.UsedRange.rows
value = r.Cells(r.Row, 3).value
If value = "Test" Then
'Do something...
total = total + 1
End If
Debug.Print ("Row: " & r.Row & " - Value: " & value)
Next r
End Sub
Консоль показывает это:
Row: 1 - Value: Col2
Row: 2 - Value: JohnDoe
Row: 3 - Value: JohnDoe
Row: 4 - Value: Test
Row: 5 - Value: Blabla
Row: 6 - Value: Blabla
Row: 7 - Value:
Row: 8 - Value:
Row: 9 - Value:
Row: 10 - Value:
Row: 11 - Value:
Как мне исправить это, чтобы не пропускать каждое второе значение?
Причина, по которой я использую UsedRange
вместо for i = 1 to x
, заключается в том, что я не буду заранее указывать количество строк.