Содержание 1 введение 6
Вид материала | Реферат |
- Заключительный отчет июль 2010 содержание содержание 1 список аббревиатур 3 введение, 6029.85kb.
- Содержание введение, 1420.36kb.
- Содержание Содержание 1 Введение, 82.41kb.
- Содержание разделов дисциплины, объем в лекционных часах-60 часов, 48.53kb.
- Содержание учебной дисциплины. Введение. Раздел, 159.08kb.
- Краткое содержание информационного сайта муниципального образования, 693.73kb.
- Черноиванова Наталья Николаевна г. Волгоград. 2010 г. Содержание введение 2 стр пояснительная, 184.65kb.
- Содержание Аннотация, 625.36kb.
- Содержание: стр, 753.82kb.
- Содержание введение, 283.8kb.
11.9 Использование объекта Range
Объект Range – наиболее часто используемый объект Excel. Характерная особенность этого объекта заключается в том, что он не входит ни в одно семейство. Объектом Range является ячейка, строка, столбец, несколько расположенных как рядом, так и отдельно ячеек, или трехмерный диапазон. Обратите внимание, что одна ячейка – это также объект Range.
Диапазон можно задать в программе следующим образом:
- Используя ссылку на ячейки, например, Range ("G14") или Range("B1:B6").
- Используя имя диапазона, например, "Итоги". Чтобы сослаться на диапазон, требуется указать выражение Range("Итоги").
- Используя объект ActiveCell. Объект ActiveCell указывает на ячейку или объект Range, который имеет фокус при вводе данных с клавиатуры.
- Используя объект Selection. Объект Selection – это то, что выделено на рабочем листе. Объект Selection может указывать на тот же диапазон, что и объект ActiveCell, а может и не указывать. С помощью объекта Selection можно сослаться, например, на диапазон, включающий одну или несколько ячеек, на рисунок или на диаграмму. Объект ActiveCell всегда указывает на диапазон, содержащий одну ячейку.
11.9.1 Использование свойств объекта Range
Параметр Range_object, используемый при описании свойств, является ссылкой на диапазон. В качестве примеров ссылок можно привести следующие: Range("range_name"), где параметр range_name – имя диапазона, а также ActiveCell, или Selection, если выбран диапазон.
Свойство Address. В свойстве Address хранится расположение диапазона на рабочем листе. При указании данного свойства используются следующие параметры:
Range_0bject.Address(RowAbsolute, ColumnAbsolute, _
ReferenceStyle, External, RelativeTo)
Если необязательный параметр RowAbsolute имеет значение True, то возвращается абсолютный адрес строки. Величиной по умолчанию для данного аргумента является значение True. Если необязательный параметр ColumnAbsolute имеет значение True, то возвращается абсолютный адрес столбца. Величиной по умолчанию для данного аргумента является значение True. Если объект Range указывает на диапазон, включающий несколько ячеек, то параметры RowAbsolute и ColumnAbsolute относятся ко всем строкам и столбцам.
По умолчанию применяется стиль ссылок А1. Если необходимо использовать нотацию R1C1, присвойте необязательному параметру ReferenceStyle значение xlR1C1. Для задания нотации А1 следует указать константу xlA1.
По умолчанию ссылки являются локальными. Чтобы возвратить внешнюю ссылку, присвойте необязательному параметру External значение True.
Дополнительный параметр RelativeTo позволяет задать абсолютные координаты точки, относительно которой вычисляется положение заданного диапазона. Если параметры Row-Absolute и ColumnAbsolute имеют значение False, a аргумент ReferenceStyle – значение xlR1C1, то параметр RelativeTo указывать обязательно.
Например, свойство Address используется для вывода в окне сообщения положения активной ячейки (рис. 11.4). Для этого укажите следующую инструкцию:
MsgBox "Активной ячейкой является " & ActiveCell.Address
Свойство Cells. Если требуется сослаться на ячейки, зная их положение относительно заданного объекта Range, необходимо использовать свойство Cells. При указании данного свойства используются следующие параметры:
Range_object.Cells(Row, Column)
Рис. 11.4 Вывод положения активной ячейки
Необязательный параметр Row является относительным адресом строки, а дополнительный параметр Column – относительным адресом столбца. Например, если необходимо перемещаться к разным диапазонам в программе и вводить в них данные, можно использовать следующую программу:
'Если начальной ячейкой (диапазоном) являлась ячейка А1, то
'после выполнения следующей инструкции активной станет
'ячейка А2.
ActiveCell.Cells(2).Activate
ActiveCell.Value = 12
'После выполнения следующей инструкции активной ячейкой
'становится ячейка С2.
ActiveCell.Cells(, 3).Activate
ActiveCell.Value = "Итог"
'Ввод в ячейку D3 значения 100.
ActiveCell.Cells(2, 2).Activate
ActiveCell.Value = 100
Свойство CurrentRegion. Свойство CurrentRegion очень полезное свойство объекта Range. Предположим, что требуется часто импортировать данные на рабочий лист. В некоторых случаях результат включает пять строк, а в других – более 500 строк. Для выбора диапазона данных используется свойство CurrentRegion. Оно указывает на объект Range, включающий диапазон ячеек, границами которого являются пустые строки и пустые столбцы.
Допустим, что неизвестно, сколько строк содержится в результирующем множестве, но имеется адрес первой ячейки, в которую помещены обработанные данные. Чтобы выбрать все ячейки результирующего множества, воспользуйтесь следующей процедурой:
Public Sub SelectAll()
'Активизация первой ячейки результирующего множества
Range ("А2") .Activate
'Выделение всего результирующего множества.
'Обратите внимание на то, что метод Select использован для
'того, чтобы выделить диапазон, включающий несколько ячеек.
ActiveCell.CurrentRegion.Select
'Для вывода количества строк в результирующем множестве,
'используется свойство Count.
MsgBox "Число строк равно " & Selection.Rows.Count
End Sub
На рис.11.5 показан результат выполнения данной процедуры.
Рис. 11.5 Вывод числа строк в результирующем множестве ячеек
Свойство Formula. Свойство Formula используется для задания или чтения формулы в стиле А1. После ввода формулы в объект Range свойстству HasFormula автоматически присваивается значение True. Например, если необходимо задать функцию Sum для диапазона С7, укажите следующую инструкцию:
Range("C7").Formula = "=Sum(Cl:C6)"
Свойство Name. Чтобы присвоить в программе имя диапазону, используется свойство Name. Например, для задания диапазона Titles укажите следующую инструкцию:
Range("A1:D1").Name = "Titles"
Свойство Value. Для установки или чтения содержимого указанной ячейки используется Value.
11.9.2 Использование методов объекта Range
Параметр Range_object, используемый при описании синтаксиса методов, является ссылкой на диапазон. В качестве примеров ссылок можно привести следующие: range("range_na-me"), где параметр range_name – имя диапазона, ActiveCell, или Selection, если выбран диапазон.
Некоторые методы объекта Range, например, метод Activate, рассматривались выше. Обратите внимание, что ниже не описывается метод Add. Это вызвано тем, что объект Range не входит ни в одно семейство.
Метод AutoFit. Метод AutoFit используется, чтобы задать автоматическую настройку ширины столбца и высоты строки диапазона. Данный метод имеет следующий синтаксис:
Range_object.AutoFit
Если необходимо использовать метод AutoFit для выделенного диапазона, можно использовать следующий фрагмент:
Range("А2").Activate
ActiveCell.CurrentRegion.Select
Selection.AutoFit
Методы Clear, ClearComments, ClearContents, ClearFormats, ClearNotes. Для очистки диапазона используется метод Clear. Он имеет следующий синтаксис:
Range_object. Clear
265
Методы ClearComments, ClearContents, ClearFormats и ClearNotes позволяют убрать комментарии, содержимое ячеек, форматы и примечания.
Если удаляется диапазон ячеек, то находящиеся рядом (смежные) ячейки сдвигаются на место удаленных. При очистке убирается содержимое ячеек, форматы и комментарии, но сами пустые ячейки остаются.
Метод Сору. Метод Сору используется для копирования диапазона или другого объекта в Буфер обмена. Данный метод имеет два варианта синтаксиса:
Object. Copy
Копирует объект, в данном случае, объект Range в Буфер обмена.
Если требуется выполнить копирование и вставку одной командой:
Range _ object.Сору destination
Параметр destination определяет диапазон, в который производится копирование.
Метод Cut. Метод Cut позволяет вырезать объект и поместить его либо в Буфер обмена, либо в указанный диапазон. Его синтаксис похож на синтаксис метода Сору:
Range_object.Cut destination
Необязательный параметр destination определяет диапазон, в который требуется произвести вставку объекта. Если данный аргумент опущен, то объект вырезается и копируется в Буфер обмена.
Свойство Count. В свойстве Count хранится число объектов семейства. Обычно данное свойство применяется, если объект Range совместно используется с семействами Rows и Columns (рис. 11.6), например:
Public Sub countit()
Dim Counting As String
ActiveCell.CurrentRegion.Select
Counting = "Число ячеек = " & Selection.Count
Counting = Counting & Chr(13) & "Число строк = " & _
Selection.Rows.Count
Counting = Counting & Chr(13) & "Число столбцов = " & _
Selection.Columns.Count
MsgBox Counting
End Sub
Рис. 11.6 Вывод числа ячеек, строк и столбцов
в выделенном диапазоне
Метод PasteSpecial. Чтобы вставить диапазон или другой объект из Буфера обмена, используется метод PasteSpecial. Данный метод идентичен команде Правка\Специальная вставка (Edit\Paste Special). Синтаксис метода PasteSpecial следующий.
Range_object.PasteSpecial paste, operation, skipBlanks, transpose
Необязательный параметр paste определяет элементы диапазона, – формулы, данные, форматы, комментарии, – которые требуется вставить. Допустимыми значениями данного аргумента являются константы Excel: xlPasteAll (по умолчанию), xlPasteFormulas, xlPasteValues, xlPasteFormats, xlPasteNotes или xlPasteAllExceptBorders.
Чтобы определить тип вставки, используется дополнительный параметр operation. Допустимыми значениями данного аргумента являются константы: xlPasteSpecialOperationNone (по умолчанию), xlPasteSpecialOperationAdd, xlPasteSpecial-OperationSubtract, xlPasteSpecialOperationMultiply или xlPaste-SpecialOperationDivide.
Если следует пропустить при вставке пустые ячейки, присвойте необязательному параметру skipBlanks значение True. Значение по умолчанию для данного аргумента равно False.
Если требуется при вставке поменять местами строки и столбцы, присвойте необязательному параметру transpose значение True. Значение по умолчанию для данного аргумента равно False.
11.9.3 Примеры использования объектов Range
Форматирование диапазонов. Как изменить начертание или шрифт содержимого ячеек диапазона? При рассмотрении свойств объекта Range эти свойства не обсуждались. Причиной этого является то, что объект Range не имеет свойств Bold, Italic и т.п. Эти свойства принадлежат объекту Font, который относится ко многим объектам, включая и объект Range. Покажем использование свойств объекта Font:
Sub Formatting()
With Selection.Font
.Name = "Times New Roman"
.FontStyle = "Bold"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
End Sub
Обратите внимание на свойство Underline. Можно было бы ожидать, что оно равно либо True, либо False. Однако дело обстоит иначе. Excel поддерживает несколько стилей подчеркивания. Допустимыми значениями данного свойства являются константы: xlUnderlineStyleNone, xlUnderlineStyleSingle, xlUnderline-StyleDouble, xlUnderlineStyleSingleAccounting и xlUnderlineStyle-DoubleAccounting.
Работа c отдельными ячейками диапазона. В некоторых случаях требуется получить содержимое заданной ячейки диапазона. Для этого используется инструкция For …Each:
Dim currCell as Range
For each currCell in Range("Data")
If currCell.Value >100000 Then
With currCell.Font
.Bold = True
.Underline = xlUnderlineStyleDouble
End With
End If
Next currCell