Я пытаюсь понять, как использовать свойство Rows.Count и метод Rows (x) для объектов Range:
У меня есть следующий объект диапазона:
Dim rng As Range
Set rng = Range("B66:B78")
rng.Rows.Count ---> returns 13
Итак, я Я ожидаю, что rng.Rows(15)
не вернет ничего, поскольку, если я правильно понимаю, индексы строк должны равняться числу строк и поэтому не должны превышать 13 (?). Но rng.Rows(15)
возвращает Range
объект. Почему это так?
Редактировать:
Вот моя подпрограмма:
Sub Button2_Click()
Dim a As Range
Set a = Range("A1:C10")
Dim ginrng As Range
Set ginrng = a.Find("gin")
Debug.Print "Row " & ginrng.Row & ", B cell value = " & ginrng.Range("B" & ginrng.Row).Value
Dim b As String
b = ginrng.Address
Do
Dim ginrngnxt As Range
Set ginrng = a.FindNext(ginrng)
Debug.Print "Row " & ginrng.Row & ", B cell value = " & ginrng.Range("B" & ginrng.Row).Value
Loop While b <> ginrng.Address
End Sub
Снимок экрана набора данных:
Снимок экрана фактического вывода из подпрограммы:
Ожидаемый вывод из подпрограммы:
Row 2, B cell value = wafer
Row 3, B cell value = start
Row 4, B cell value = gin
Row 5, B cell value = may
Row 6, B cell value = go
Row 7, B cell value = gin
Row 9, B cell value = water
Row 10, B cell value = tonic
Row 2, B cell value = wafer
Значения ячейки B в фактический вывод не соответствует значениям ячейки B в наборе данных. Почему это?