Как использовать ячейку в качестве переменной в vba?
Чтобы использовать диапазон или одну ячейку в качестве переменной, вы должны сначала объявить эту переменную с типом данных диапазона. После этого вам нужно указать диапазон от одной ячейки до этой переменной, используя объект диапазона. Это также дает вам доступ ко всем свойствам и методам, которые вы можете использовать с диапазоном.
- Используйте ключевое слово «Dim» и введите имя переменной.
- Объявите ключевое слово как Range .
- Введите имя переменной.
- Укажите диапазон, который вы хотите назначить переменной.

Установить выбор в переменную диапазона
Вы также можете использовать выбранный диапазон для переменной, а затем использовать эту переменную для доступа к свойствам и методам. Рассмотрим следующий код.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Но есть одна вещь, с которой нужно быть осторожным: при выборе объекта , отличного от диапазона, VBA покажет вам ошибку.

Но это также динамический метод, при котором вам не нужно снова и снова менять диапазон.
Копирование диапазона с помощью переменной
Объявив переменную как диапазон, вы также можете скопировать этот диапазон, используя это имя переменной. Предположим, вы объявили диапазон A1:A10 как переменную rng (пример выше), вы можете скопировать его, используя следующий код.

Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
Использование переменной диапазона в функции
Вы также можете использовать переменную диапазона для ссылки на диапазон в функции при написании макроса. Рассмотрим следующий код.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub

Он принимает значения в диапазоне A1:A10 и поскольку вам нужно использовать переменную «rng», для ее вывода мы использовали переменную в максимальном значении.
Связанный: Как использовать WorksheetFunction в VBA
Посчитайте количество строк и столбцов
Как я уже говорил, как только вы укажете переменную как диапазон, вы также получите все свойства и методы доступа. Представьте, что вы хотите посчитать строки и столбцы. Вот код, который можно использовать.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub

Когда вы запускаете этот код, он отображает сообщение с количеством строк и столбцов в диапазоне, указанном вами в переменной.
Определение рабочего листа с диапазоном
Во всех приведенных выше примерах мы использовали диапазон без упоминания рабочего листа, поэтому при запуске этого кода VBA всегда будет ссылаться на диапазон на активном листе. Но если вы хотите сослаться на конкретный лист, вам нужно использовать объект листа с диапазоном.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")