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



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

Обрабатывая событие 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 позволяют управлять им от внешнего вида до автоматизации вычислений. В последующих разделах на содержательных примерах досконально разобраны следующие свойства этого объекта.

Address AllowEdit Areas
Borders Cells Characters
Column Columns ColumnWidth
Comment Count CurrentRegion
End EntireColumn EntireRow
Font Formula FormulaArray
FormulaHidden FormulaLocal FormulaR1C1
FormulaRlClLocal HasFormula Height
Hidden HorizontalAlignment Hyperlinks
Interior Left Locked
Name NumberFormat Offset
Orientation Resize Row
RowHeight Rows ShrinkToFit
Top UseStandardHeight UseStandardWidth
Value VerticalAlignment Width
Worksheet WrapText  

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

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






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