- •Объектная модель
- •Полная и неявная ссылка на объект
- •Ссылка на активную рабочую книгу, лист, ячейку, диаграмму и принтер
- •Загрузка инсталлированной надстройки
- •Управление уровнем безопасности
- •Семейство встроенных диалоговых окон
- •Объект FileDialog
- •Методы объекта Application
- •Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш
- •Переопределение горячих клавиш приложения
- •Проверка правописания отдельного слова
- •Симулирование ячеек рабочего листа
- •Электронные часы в ячейке рабочего листа
- •Получение данных из закрытой рабочей книги
- •События объекта Application
- •IgnoreReadOnlyRecommended — необязательный параметр, указывающий надо ли отображать предупреждение о том, что книга была сохранена в режиме "только для чтения";
- •Установка и снятие защиты книги
- •Методы объекта Worksheet
- •Объект Protection
- •События объекта Worksheet
- •Добавление к графическому объекту обработчика события Click
- •Примечание
- •Свойства объекта Range
- •Управление стилем границы диапазона и объекта Border
- •Функции rgb и qbColor
- •Доступ к отдельным ячейкам диапазона
- •Выбор элементов на рабочем листе или в книге
- •Объект Characters
- •Объект Comment
- •Определение текущего диапазона
- •Объект Font
- •Объект Interior
- •Установка числового формата
- •Переопределение размеров диапазона
- •Методы объекта Range
- •Табуляция функции
- •Заполнение диапазона по одному значению
- •Специальная вставка
- •Вставка диапазона с транспонированием
- •Бегущая картинка
- •Поиск значения в диапазоне
- •Повторный поиск и поиск всех значений
- •Поиск по формату
- •Замена значений
- •Ввод в диапазон неповторяющихся значений
- •Озвучивание текста
- •Построение графа
- •Пользовательские функции
- •Математические функции
- •Надстройки
- •Где хранятся макросы?
Табуляция функции
Метод AutoFill позволяет решить задачу табуляции функции, т. е. вывода ее значений при изменении значения ее параметра. Например, требуется найти значения функции sin(x) при значении параметра х, изменяющемся от 0 до 2 с шагом 0,2. Это можно сделать следующим образом (листинг 5.52). Сначала в ячейку А1 ввести первый член арифметической последовательности требуемых значений параметра, а затем с помощью метода DataSeries построить всю последовательность вдоль столбца А. Потом определить как текущий диапазон с этими значениями. Диапазон, в котором расположатся соответствующие значению функции, разместится в столбце В, и его можно найти при помощи свойства Offset. Далее остается самая малость. В ячейку В1 ввести формулу =SIN(A1) для нахождения значения функции при значении параметра, равного 0, а затем скопировать данную формулу на весь диапазон, отводимый под искомые значения функции (рис. 5.8).
Sub DemoDataSeries()
Range("Al").Value = 0
Range("Al").DataSeries Rowcol:=xlColumns, _
Type:=xlDataSeriesLinear, _
Step:=0.2, _
Stop:=2
Dim rgn As Range
Set rgn = Range("A1").CurrentRegion
rgn.NumberFormat = "0.0"
Set rgn = rgn.Offset(0, 1)
Range("B1").Formula = "=SIN(A1)"
Range("B1").AutoFill Destination:=rgn, Type:=xlCopy
rgn.NumberFormat = "0.0000"
E
nd
Sub
Рис. 5.8. Табуляция функции
Заполнение диапазона по одному значению
Метод FillDown объекта Range заполняет сверху вниз диапазон на основе значений, расположенных в верхней строчке этого диапазона, причем данные значения копируются во все остальные ячейки диапазона.
Метод FillUp объекта Range заполняет снизу вверх диапазон на основе значений, расположенных в нижней строчке этого диапазона.
Метод FillLeft объекта Range заполняет справа налево диапазон на основе значений, расположенных в крайнем правом столбце этого диапазона.
Метод FillRight объекта Range заполняет слева направо диапазон на основе значений, расположенных в крайнем левом столбце этого диапазона.
Например, в данной инструкции содержание ячейки А10 копируется в каждую из ячеек диапазона А1:А9:
Range("A1:A10").FillUp
Очистка ячейки
Методы Clear, ClearComments, ClearContents, ClearFormats и ClearNotes объекта Range очищают диапазон и комментарии, содержание, форматы и примечания. Например, следующая инструкция очищает диапазон A1:G37.
Range("Al:G37").Clear
Копирование, вырезание
и удаление данных из диапазона
Метод Сору объекта Range копирует диапазон в другой диапазон или в буфер обмена.
Copy(Destination)
Здесь Destination — необязательный параметр, определяющий диапазон, в который копируется данный диапазон. Если этот параметр опущен, то копирование происходит в буфер обмена. В данном примере диапазон A1:D4 активного рабочего листа копируется в диапазон Е5:Н8 рабочего листа Лист2.
Range("A1:D4").Copy Worksheets("Лист2").Range("E5")
Метод Сut объекта Range вырезает, т. е. копирует с удалением диапазон в указанный диапазон или в буфер обмена.
Cut(Destination)
Здесь Destination — необязательный параметр, задающий диапазон, в который копируется данный диапазон. Если этот параметр опущен, то диапазон копируется в буфер обмена. В данном примере диапазон A1:D4 рабочего листа Лист1 копируется с удалением в буфер обмена.
Worksheets("Лист1").Range("Al:D4").Cut
Метод Delete объекта Range удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы.
Rows(3).Delete
