Подскажите как выделить диапазон строк от a до b
Public a, b As Integer
Sub asd()
a = Range("диапазон").Rows(Range("диапазон").Rows.Count).Row
b= UsedRange.Rows.Count
Rows("a:b").Select
End sub
Почему когда стоят переменные в скобках не выделяет строки, а скажем Rows(a).Select работает.
a и b находит верно я проверял через msgbox.
Не ответ на ваш вопрос, просто замечание по коду.
В VBA нужно указывать тип данных для каждой переменной. Правильно так:
Public a As Integer, b As Integer
В вашем же случае у переменной "a" тип данных "Variant", а не "Integer", как вы предполагали.
Не ответ на ваш вопрос, просто замечание по коду.
В экселе 2007+ 1 млн строк на листе. Поэтому даже для цикла по строкам недостаточно типа данных Integer.
Поэтому правильно использовать тип данных Long:
Public a As Long, b As Long
В VBA, всё, что попадает внутрь кавычек становится обычным текстом. В этом коде внутри скобок уже не переменные, как вы думаете, а просто буквы "a" и "b":
rows("a:b").Select
Можно так выделить строки:
Public a As Long, b As Long
Sub asd()
a = Range("диапазон").rows(Range("диапазон").rows.Count).row
b = UsedRange.rows.Count
rows(a).Resize(b).Select
End Sub
Ок, спасибо.
В моем случае будет.
rows(a+1).Resize(b-а).Select