Range — главный рабочий объект Excel VBA. Почти все ошибки 1004 и медленные макросы рождаются здесь: Select/Activate, запись по одной ячейке, путаница Value/Value2/Text. Читайте и пишите массивами, адресуйте через Cells, не трогайте выделение.
Excel / объект
Range
Диапазон — Ячейка или прямоугольник ячеек: значения, формулы, поиск, копирование.
Свойства
| Имя | Тип | Суть |
|---|---|---|
| Value | Variant |
Значение ячейки с учётом типа Excel, в том числе валюта и дата как Date. |
| Value2 | Variant |
Значение без Currency и без Date: даты — числа OLE Automation. |
| Text | String |
То, что видит пользователь, с форматом и разделителями. |
| Formula | Variant |
Формула в стиле A1 на языке интерфейса Excel. |
| FormulaR1C1 | Variant |
Формула в относительных координатах строки/столбца. |
| Address | String |
Адрес диапазона строкой. |
| Offset | Range |
Тот же размер, сдвинутый на строки и столбцы. |
| Resize | Range |
Новый диапазон от левого верхнего угла с другим числом строк и столбцов. |
| End | Range |
Эквивалент Ctrl+стрелка от текущей ячейки. |
| CurrentRegion | Range |
Блок, ограниченный пустыми строками и столбцами. |
| NumberFormat | String |
Строка формата ячейки. |
Методы
| Имя | Сигнатура | Суть |
|---|---|---|
| Find | Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection], [MatchCase], [MatchByte], [SearchFormat]) As Range |
Ищет значение в диапазоне, как диалог «Найти». |
| Copy | Copy([Destination]) |
Копирует диапазон в буфер или сразу в Destination. |
| PasteSpecial | PasteSpecial([Paste], [Operation], [SkipBlanks], [Transpose]) |
Вставляет из буфера значения, форматы, формулы. |
| ClearContents | ClearContents() |
Удаляет значения и формулы, оставляет форматы. |
| SpecialCells | SpecialCells(Type, [Value]) As Range |
Подмножество: константы, формулы, пустые, видимые. |