Вывод суммы значений из выделенного диапазона



В строку состояния

Обрабатывая событие SelectionChange объекта Worksheet можно сделать так, чтобы в строку состояния выводилась, например, сумма значений из выделенного диапазона. Для этого надо воспользоваться свойством StatusBar объекта Application, как показано в следующем коде (листинг 5.39) из модуля рабочего листа, в котором задается текст, отображаемый в строке состояния. Если значение этого свойства устанавливается равным False, то в строке состояния отображается текст, заданный по умолчанию.

Листинг 5.39. Вывод суммы значений из выделенного диапазона в строку состояния.

Модуль рабочего листа

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim s As Double

s = Application.WorksheetFunction.Sum(Target)

If s <> 0 Then

Application.StatusBar = FormatNumber(s, 3)

Else

Application.StatusBar = False

End If

End Sub

Объекты Range и Selection

В иерархии MS Excel объект Range (диапазон) идет сразу после объекта Worksheet. Объект Range является одним из ключевых объектов VBA. Объект Selection возникает в VBA двояко — либо как результат работы метода

Select, либо при вызове свойства Selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаше всего объект Selection принадлежит классу Range, и при работе с ним можно использовать свойства и методы объекта Range. Объект.Range возвращается либо как элемент семейств

Range или Cells, либо свойствами Range, Cells И Offset, либо методами ActiveCell, Intersect и Union.

Адресация ячеек

При работе с объектом Range необходимо помнить, как в MS Excel ссылаются на ячейку рабочего листа. Имеются два способа ссылки на ячейки рабочего листа:

r относительная адресация (табл. 5.14), т. е. когда начало координат, за­дающее нумерацию строк и столбцов, связывается с объектом, вызвавшим Range;

r абсолютная адресация (табл. 5.15).

Таблица 5.14. Относительная адресация

Формат Описание
А 1 Имя ячейки состоит из имени столбца (их 256 — А, В, ..., Z, АВ..... HZ, IA,..., IV) и номера (1, ..., 16 384). Например, А1 или С2
R1C1 Адресация задается индексом строки и индексом столбца. Например, R 1 C 1 иили R 2 C 3

Таблица 5.15. Абсолютная адресация

Формат Описание
А 1 Признаком абсолютной адресации является знак $, предшествующий имени строки (абсолютная адресация на строку) или столбца (абсолютная адресация на столбец). Например, $А10, А$10 и $А$10 задают абсолютную адресацию на столбец А, строку 10 и ячейку А 10 соответственно
R1C1 Указывается смещение по отношению к активной ячейке. Смещение приводится в квадратных скобках, причем знак указывает на направление смещения. Например, если активной ячейкой является R 2 C 3, то R[1] С[-1] дает ссылку на ячейку R 3 C 2

Адресация ячейки рабочего листа является лишь частью полного адреса ячейки, который в общем случае включает имя рабочего листа и адрес книги. При задании полного адреса за именем листа следует знак !, а адрес книги заключается в скобки.

Например:

A1

Лист2!А1

[МояКнига.XLS]Лист2!Al

В первой строке данного примера дана относительная ссылка на ячейку А1 активного рабочего листа, во второй — на ячейку А1 рабочего листа Лист2 активной книги, а в третьей на ячейку А1 рабочего листа Лист2 книги МояКнига.xls текущего рабочего каталога.

Задание групп строк и столбцов

Если в диапазоне указываются только имена столбцов или строк, то объект Range задает диапазон, состоящий из указанных столбцов или строк. Например, Range ("А:C") задает диапазон, состоящий из столбцов А, В и С, а Range("2:2") — из второй строки. Другим способом работы со строками и столбцами являются свойства рабочего листа Rows и Columns, возвращающие семейства строк и столбцов. Например, столбцом А является Columns(1), a второй строкой— Rows(2) .


Связь объекта Range

И свойства Cells объекта Worksheet

Ячейка — это частный случай диапазона, который состоит из единственной ячейки. Поэтому естественно, что объект Range позволяет работать как с диапазоном ячеек, так и с одной ячейкой.

Альтернативным способом работы с ячейкой является свойство Сells объекта worksheet. Например, ячейку А2 как объект можно описать двумя равносильными способами :

Range ("А2") и

Cells (1, 2).

В свою очередь ячейка, возвращаемая свойством Сells, используемым как параметр объекта Range, позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы. В качестве примера этой формы записи диапазона приведем следующие две инструкции, возвращающие один и тот же диапазон:

Range("А2:СЗ")

Range(Cells(l,2), Cells(3,3))

Примечание

Диапазон также как и рабочий лист, обладает свойством Cells, которое, если используется без параметров, возвращает множество всех ячеек, входящих в диапазон. Если же оно указывается с параметрами, то возвращает конкретную ячейку из диапазона. Например, в следующем примере значение 2 вводится в ячейку СЗ:

Range("В2:D4").Select

Selection.Cells(2, 2).Value = 2

При работе с объектом Range допустимо использование именных диапазонов. Предположим, если определен диапазон с именем отчет, то на него можно ссылаться следующим образом:

Range("Отчет")

Если имеются две ячейки, именованные FirstCell и LastCell, то минимальный прямоугольный диапазон, содержащий эти ячейки, может быть описан следующим образом:

Range(Range("FirstCell"), Range("LastCell"))

При работе с диапазонами допустима ссылка на них по их имени, окруженным квадратными скобками, что является сокращенной записью метода Evaluate объекта Application:

[В1]

[А1:С5]

[А1:А10,С1:С10]

[Продажи]

Ссылка на диапазон неактивного рабочего листа производится так:

Worksheets("Май").Range("Отчет") Worksheets("Май").Range("А1")

Свойства объекта Range

Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа. Огромное число встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA. Свойства объекта Range позволяют управлять им от внешнего вида до автоматизации вычислений. В последующих разделах на содержательных примерах досконально разобраны следующие свойства этого объекта.


Дата добавления: 2019-02-12; просмотров: 186; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!