Шаг 29.
VBA в MSExcel.
Основные объекты VBA. Объекты Range и Selection. Методы объекта Range

    На этом шаге мы перечислим основные методы этого объекта.

    Перечислим наиболее часто используемые методы объекта Range.

Таблица 1. Основные методы объекта Range
Метод Назначение
Address Возвращает адрес ячейки. Синтаксис:
  Address (rowAbsolute, columnAbsolute, referenceStyle, _ 
             external, relativeTo)
Аргументы:
  • RowAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на строку;
  • ColumnAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на столбец;
  • referenceStyle — допустимы два значения: xlA1 и xlR1C1. Если используется значение xlA1 или аргумент опущен, то возвращается ссылка в виде формата А1;
  • external — допустимы два значения: True и False. Если используется значение False или аргумент опущен, то возвращается относительная ссылка;
  • relativeTo — в случае, если rowAbsolute и СolumnAbsolute равны False, a referenceStylexlR1C1, то данный аргумент определяет начальную ячейку диапазона, относительно которой производится адресация.
Следующий пример показывает различные результаты адресации.
MsgBox Cells (1,1).Address()
' В диалоговом окне отображается адрес $А$1 
MsgBox Cells (1,1).Address (rowAbsolute:=False)
' В диалоговом окне отображается адрес $А1
MsgBox Cells (1,1).Address (referenceStyle :=xlR1C1)
' В диалоговом окне отображается адрес R1C1
Clear, ClearComments, ClearContents, ClearFormats и ClearNotes Метод Clear очищает диапазон. В следующем примере очищается диапазон A1:G37 .
  Range ("A1:G37").Clear
Методы ClearComments, ClearContents, ClearFormats и ClearNotes очищают в диапазоне комментарии, содержание, форматы и примечания соответственно.
Copy Копирует диапазон в другой диапазон или в буфер обмена. Синтаксис:
  Copy (destination)
Аргумент destination определяет диапазон, куда копируется данный диапазон. Если аргумент destination опущен, то копирование происходит в буфер обмена. В данном примере диапазон A1:D4 рабочего листа Лист1 копируется в диапазон Е5:Н8 листа Лист2:
  Worksheets ("Лист1" ).Range ("А1:D4").Сорy _ 
         destination :=Worksheets("Лист2").Range("E5")
Cut Копирует диапазон с удалением в указанный диапазон или в буфер обмена. Синтаксис:
  Cut (destination)
Аргумент destination определяет диапазон, в который копируется данный диапазон. Если аргумент destination опущен, то диапазол копируется в буфер обмена. В данном примере диапазон A1:D4 рабочего листа Лист1 копируется с удалением в буфер обмена:
  Worksheets ("Лист1").Range("А1:D4").Cut
Delete Удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы:
  Rows(3).Delete
Columns, Rows Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон. В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно:
  i = Selection.Columns.Count 
  j = Selection.Rows.Count
Insert Вставка ячейки или диапазона ячеек. В следующем примере вставляется новая строка перед четвертой строкой рабочего листа Лист1:
  Worksheets("Лист1").Rows(4).Insert
Offset Возвращает диапазон, смещенный относительно данного на величины, специфицированные в аргументах. Синтаксис:
  Offset (rowOffset, columnOffset)
Аргументы:
  • rowOffset — целое число, указывающее сдвиг по строкам;
  • columnOffset — целое число, указывающее сдвиг по столбцам.
Например, в следующем примере активизируется ячейка, расположенная на три строки ниже и на два столбца левее относительно предыдущей активной ячейки:
  ActiveCell.Offset(rowOffset:=3, columnOffset:=-2).Activate
Select Выделение диапазона
PasteSpecial Специальная вставка из буфера обмена. Синтаксис:
  PasteSpecial (paste, operation, skipBlanks, transpose) 
Аргументы:
  • paste — определяет ту часть содержимого буфера обмена, которая должна быть вставлена в диапазон. Допустимые значения:
    • xlAll (все);
    • xlFormulas (формулы);
    • xlVaiues (значения);
    • xlFormats (форматы);
    • xlNotes (примечания);
    • xlAllExceptBorders (без рамки).
  • operation — определяет операции. Допустимые значения:
    • xlNone (нет);
    • xlAdd (сложить);
    • xlSubtract (вычесть);
    • xlMultiply (умножить);
    • xlDivide (разделить).
  • skipBlanks — допустимые значения: True (пустые ячейки при вставке не учитываются) и False (пустые ячейки учитываются);
  • Transpose — допустимые значения: True (диапазон выводится транспонированным) и False (не транспонированным).
В приведенном ниже примере данные из диапазона C1:C5 рабочего листа Лист1 вставляются в диапазон D1:D5 того же листа, причем они не заменяют уже существующие данные в диапазоне D1:D5, а прибавляются к ним данные из диапазона C1:С5:
  Worksheets("Лист1").Range("С1:С5").Сору 
  Worksheets("Лист1").Range("D1:D5").PasteSpecial operation:=xlAdd
Метод PasteSpecial программирует выполнение на рабочем листе команды Правка | Специальная вставка (Edit | Paste Special). Аргументы метода PasteSpecial соответствуют установкам диалогового окна Специальная вставка (Paste Special), отображаемого с помощью этой команды (рисунок 1)


Рис.1. Диалоговое окно Специальная вставка

AddComment Добавляет примечание к диапазону. Синтаксис:
  AddComment (Text) 
Text — строковое выражение добавляемое в качестве примечания. В следующем примере создается примечание Внимание! ячейки A1 активного рабочего листа:
  Range("А1").AddComment "Внимание!"

    На следующем шаге мы продолжим изучать методы этого объекта.




Предыдущий шаг Содержание Следующий шаг