Существует три основных метода доступа к диапазонам в Excel:
- Жестко закодированные значения
- Переменные
- Именованные диапазоны
Жестко закодированные значения
Я не буду тратить время на их объяснение, но вот несколько примеров:
ThisWorkbook.Sheets("Name").Range("A1:B2")
ActiveWorkbook.ActiveSheet.Range("C3:E50")
Sheet1.Cells(1,3) 'Range("C1")
Примечания
ThisWorkbook
является ссылкой на рабочую книгу, в которой содержится код.Важное отличие от ActiveWorkbook
, поскольку они не всегда являются одной и той же рабочей книгой (в основном, когда открыто более 2 рабочих книг).
Sheet1
- это кодовое имя листа.Кодовые названия листов могут использоваться только для листов, содержащихся в ThisWorkbook
.Если вы ссылаетесь на лист из другой рабочей книги, вам придется использовать либо имя, либо индекс для доступа к нему.
Переменные
Это будет похоже на FormulaCol
в вашеморигинальный кодПеременные либо объявляются в коде (Set FormulaCol = ActiveWorkbook.ActiveSheet.Range("L24:L39")
) на локальном или глобальном уровне области действия, либо передаются в подпрограммы как параметры (Function Sample(rangeVariable as Range) : End Function
) .
Взаимодействие с переменной диапазона можно рассматривать как использование подстановки, например:
Set FormulaCol = Sheet1.Range("L24:L39")
FormulaCol.Formula = ""
вместо
Sheet1.Range("L24:L39").Formula = ""
Именованные диапазоны
Взаимодействие сименованный диапазон похож на взаимодействие с жестко закодированным диапазоном.Предполагая, что именованный диапазон «Test» ссылается на Range («B2: C3») на Sheet1, он будет взаимодействовать с помощью:
Sheet1.Range("Test")
Однако, прежде чем ссылаться на именованные диапазоны через VBA, они сначалабыть установленным в рабочей книге.Это можно сделать несколькими различными способами:
- Выберите все ячейки для именованного диапазона, затем в поле «Имя» (слева от строки формул) введите имя для этогоименованный диапазон и нажмите клавишу ввода (если вы забыли «ввести», имя не будет сохранено).

Откройте Диспетчер имен на вкладке Формулы и нажмите «Создать» (или «Редактировать», если редактируете существующий именованный диапазон).
Примечание: при добавлении именованного диапазона с помощью менеджера вы можете выбрать область как рабочую книгу или любой из листов в рабочей книге.Это влияет на то, какие листы могут ссылаться на именованный диапазон. 
, и откроется окно, где вы выбираете имя для именованногодиапазон и выберите диапазон, на который он ссылается.
