Объект Worksheet представляет собой рабочий лист. Объект Worksheet можно получить, используя свойства ActiveSheet или Worksheets объекта Workbook.
Свойства объектов семейства WorkSheets
Свойства |
Описание и допустимые значения | ||
Name |
Возвращает имя рабочего листа: Worcsheets(1).Name=”Итоги” | ||
Visible |
True (False) – рабочий лист видим (невидим) на экране. | ||
Range |
Возвращает ссылку на указанный диапазон ячеек. Например: ActiveSheet.Range("B1") |
| |
UsedRange |
Возвращает диапазон ячеек рабочего листа. | ||
ActiveCell |
Возвращает активную ячейку рабочего листа. | ||
Методы |
Выполняемые действия | |
Activate |
Активизирует рабочий лист: Worksheet(2).Activate | |
Add |
Создает новый рабочий лист. Параметры: Before – лист, перед которым будет размещен новый лист; After – лист после которого будет помещен новый лист; Count – число добавляемых листов; Type – тип добавляемого листа. Например, ActiveWorkbook.Worksheets.Add | |
Delete |
Удаляет рабочий лист: Worksheets(1).Delete | |
Evaluate |
Преобразует текстовую строку в объект Excel или значение. Используется, например, для ввода ссылок на ячейки: MyCell =
InputBox("Введите имя ячейки") Evaluate(myCell).Value = "Новое значение" |
|
Copy |
Копирование активного рабочего листа в
другое место рабочей книги: Worksheets(“Лист2”). _ Copy After:= Worksheets(“Лист3”) | |
Move |
Перемещение активного рабочего листа в
другое место рабочей книги: Worksheets(“Лист2”). _ Move After:= Worksheets(“Лист3”) |
Событие |
Когда происходит |
BeforeClose |
Перед закрытием рабочей книги. |
BeforeSave |
Перед сохранением рабочей книги. |
Deactivate |
Когда рабочая книга теряет фокус. |
NewSheet |
При добавлении нового листа в рабочую книгу. |
Open |
При открытии рабочей книги. |
SheetActivate |
При активизации рабочего листа. |
SheetDeactivate |
Когда рабочий лист теряет фокус. |
5.8
Объект Range
5.2.1 Адресация ячеек в Excel
Для ссылок на ячейки в Excel используются 2
формата:
Формат A1 |
Ссылка состоит из имени столбца (обозначаются буквами от A до IV, 256 столбцов максимально) и номера строки (от 1 до 65536). Например, A77. Для ссылки на диапазон ячеек, указываются адреса левой верхней и правой нижней ячейки диапазона, разделенных двоеточием. Например, В10:В20, 7:7 (все ячейки в 7–й строке), 5:10 (все ячейки между 5-й и 10-й строками включительно), D:D (все ячейки в столбце D), H:J (все ячейки между столбцами H и J включительно). Признаком абсолютной ссылки является знак доллара перед именем строки или столбца. |
Формат R1C1 |
В формате R1C1, после буквы “R” указывается номер строки ячейки, после буквы “C” – номер столбца. Например, абсолютная ссылка R1C1 эквивалентна абсолютной ссылке $A$1 для формата A1. Для задания относительной ссылки указывается смещение по отношению к активной ячейке. Смещение указывается в квадратных скобках. Знак указывает направление смещения. Например, R[-3]C (относительная ссылка на ячейку, расположенную на три строки выше в том же столбце). R[2]C[2] (относительная ссылка на ячейку, расположенную на две строки ниже и на два столбца правее). R2C2 (абсолютная ссылка на ячейку, расположенную во второй строке и во втором столбце). R[-1] (относительная ссылка на строку, расположенную выше текущей ячейки), R (абсолютная ссылка на текущую строку). |
Полный адрес ячейки может содержать также имя
рабочего листа и адрес книги. После имени листа ставится знак “!”, а адрес книги
заключается в квадратные скобки. Например:
[МояКнига.xls]Лист1!D2.
Объект Range используется для работы с ячейками, строками, столбцами, а также их группами. Для доступа к объекту чаще всего используются свойства Range и Cells, хотя есть и другие возможности.
Если используется свойство Range, то в качестве
аргумента указывается любая допустимая в Excel ссылка в формате A1. Если имя
листа не указывается, то используется активный лист. Например:
'Ячейке A5 листа Лист1 присвоить значение 5
Worksheets("Лист1").Range("A5").Value = 5
'Ячейке A5 текущего листа присвоить значение 5
Range("A5").Value = 5
Свойство Cells используется для доступа к отдельной ячейке. В качестве аргументов указываются номер строки и столбца. Например, так можно присвоить значение ячейке A5 первого рабочего листа:
Worksheets(1).Cells(5,1).Value = 5
Можно также использовать свойство Cells для
альтернативного указания диапазона. Например:
Range("A2:C3") и Range(Cells(2,1),
Cells(3,3))
определяют один и тот же диапазон.
5.2.18 Основные свойства объекта Range
Свойства |
Описание и
допустимые значения | |
Value |
Возвращает значение из ячейки или диапазона: X=Range(“A2”).Value | |
Name |
Возвращает имя диапазона: Range(“B1:B4”).Name=”Итого” | |
CurrentRagion |
Возвращает количество строк текущего диапазона. | |
WrapText |
True (False) – разрешает (не разрешает) перенос текста при вводе в диапазон. | |
EntireColumn, EntireRow |
Возвращает строку и столбец. | |
ColumnWidth, RowHeight |
Возвращает ширину столбцов и высоту строк диапазона. | |
Font |
Возвращает объект Font (шрифт).
Например: With Worksheets("Л1").Range("B5").Font .Size = 14 .Bold = True .Italic = True End With |
|
Formula |
Формула в формате A1. Например, так можно ввести формулу в ячейку B5: Range("B5").Formula = "=$A$4+$A$10" При считывании значения, возвращается текстовая строка (как в строке формул). |
|
FormulaLocal |
Формула в формате A1 с учетом языка пользователя (для неанглоязычных версий Excel). Например: Range("B5").FormulaLocal = "=ПИ()" |
|
FormulaR1C1 |
Формула в формате R1C1. Например, Range("B1").FormulaR1C1 = "=R1C1+1" |
|
FormulaR1C1Local |
Формула в формате R1C1с учетом языка пользователя (для неанглоязычных версий Excel). |
|
HorizontalAlignment |
Горизонтальное выравнивание. Возможные значения: xlHAlignGeneral (обычное), xlHAlignCenter (по центру), xlHAlignCenterAcrossSelection (по центу выделения), xlHAlignJustify (по ширине), xlHAlignLeft (по левому краю), or xlHAlignRight (по правому краю) и другие. | |
VerticalAlignment |
Вертикальное выравнивание. Возможные значения: xlVAlignBottom (по нижнему краю), xlVAlignCenter (по центру), xlVAlignTop (по верхнему краю) и другие. |
Методы объекта Range можно разделить на две большие группы: методы, относящиеся к самому объекту, и методы, реализующие команды. Многие из них имеют параметры, которые здесь описываются лишь частично. Подробнее о параметрах этих методов можно прочитать, например, в справочной системе Excel. Для изучения методов, реализующих команды, рекомендуется записать макрос, выполняющий нужную команду, и проанализировать полученный код.
5.2.19 Основные методы объекта Range
Методы |
Действия | ||
Adress |
Возвращает адрес ячейки. | ||
AutoFit |
Автоматически настраивает ширину столбца
и высоту строки. Например: Range("B1:B3").Columns.AutoFit Использование свойства Columns или Rows в данном случае необходимо, так как значением диапазона должны быть строки или столбцы, иначе будет выдаваться ошибка. |
| |
Clear |
Очищает диапазон. Например: Range("A1:С5").Clear |
| |
Copy |
Копирует диапазон в другой диапазон или буфер обмена (если параметр Destination не задан). Например, так можно скопировать значения с одного листа (Л1) на другой (Л2): Worksheets("Л1").Range("A1:В3").Copy _ Destination:=Worksheets("Л2").Range("A5") |
| |
Cut |
Копирует диапазон с удалением в другой диапазон или буфер обмена (если параметр Destination не задан). Например, скопируем диапазон ячеек с удалением в буфер обмена: Worksheets("Лист2").Range("A1:D4").Cut |
| |
Delete |
Удаляет диапазон. Параметр Shift
определяет направление сдвига ячеек. Например: Range("A6:D6").Delete Shift:=xlShiftToLeft |
| |
Insert |
Вставляет ячейку или диапазон ячеек. Например, так можно вставить строку перед шестой строкой на листе "Лист2": Worksheets("Лист2").Rows(6).Insert |
| |
Select |
Выделяет диапазон: Range("A1:C7").Select |
| |
5.2.20 Методы объекта Range, реализующие команды Excel
Кроме методов, реализующих команды объект Range
имеет методы, которые используют команды Excel.
Метод |
Действия | ||
DataSeries |
Создает прогрессию. DataSeries(rowcol,date,step,stop,trend) Вручную метод выполняется с помощью команды Правка, Заполнить, Прогрессия. |
| |
AutoFill |
Автозаполнение-автоматически заполняет ячейки диапазона элементами последовательности: Объект(Диапазон, Тип). |
| |
AutoFilter |
Автофильтр-реализует запрос на фильтрацию данных на рабочем листе: Объект.AutoFilter(Поле, Условие1, Оператор, Условие2). Соответствует команде Данные, Фильтр, Автофильтр. |
| |
AdvancedFilter |
Расширенный фильтр. Соответствует команде Данные, Фильтр, Расширенный фильтр. |
| |
Consolidate |
Объединение данных из нескольких диапазонов в одну итоговую таблицу. Соответствует команде Данные, Консолидация. |
| |
Find |
Поиск данных. Вручную вызывается командой Правка, Найти. |
| |
GoalSeek |
Подбор параметра. Вручную выполняется с помощью команды Сервис, Подбор параметра. |
| |
Sort |
Сортировка данных. Вручную выполняется с помощью команды Данные, Сортировка. |
| |
Subtotal |
Добавляет промежуточные итоги. Вручную вызывается командой Данные, Промежуточные итоги. |
| |
Упражнение 5.
Свойства и методы объекта
Range
и Selection
Задание:
4. На рабочем листе с именем Лист1 поместите кнопку формы.
5. Назначьте для этой кнопки макрос с именем Кнопка1_Щелкнуть
6. В окне редактирования кода редактора Visual Basic запишите следующий программный код.
7. Прочитайте все команды программы и попытайтесь понять их назначение и синтаксис записи. Обратите внимание на текст комментариев.
8. Запустите макрос на выполнение.
9. Проследите за тем, какие действия выполняет программа.
10. Сопоставьте команды программы и выполняемые ей действия
Sub
Кнопка1_Щелкнуть()
'В ячейку А1
записывается текст
Range("A1").Value = " Упражнение 5 "
'Выделяется
ячейка А1
Range("A1").Select
With Selection
'Получаем
адрес активной ячейки
MsgBox "Адрес
активной ячейки" & .Address()
'Получаем
значение в активной ячейке
MsgBox
"Значение активной ячейки " & .Value
End With
'Изменяем
параметра шрифта для активной ячейки
With Selection
.Font.Size = 16
End With
'В ячеки
вводим числовые значения и формулу
Range("A2").Value = 2
Range("B2").Value = 4
Range("C2").Formula = "=A2^B2"
'Получаем
количество строк в диапазоне
MsgBox
"Количество строк в области А1:С2 =" & Range("A1:C2") _
.Rows.Count
MsgBox
"Количество строк в текущем диапазоне" & Range("A1") _
.CurrentRegion.Rows.Count
'Очищаем
диапазон
Range("A1:C2").Clear
‘ Используем объект
Cells
Cells(1, 1) =
" Упражнение 5 "
End Sub
Упражнение 6.
Задание. Пусть на рабочем листе имеется таблица. В левой ячейке ее первой строки находится заголовок таблицы. В следующей строке – заголовки столбцов. В остальных строках – данные. Количество строк заранее не известно. Создайте диалоговое окно, которое позволит отформатировать таблицу: разместит заголовок таблицы по центру над столбцами, изменит шрифт (размер – 14, курсив, цвет – красный), заголовки столбцов расположит в центре, изменит шрифт на полужирный. В окне также имеется поле для ввода диапазона ячеек и кнопка, позволяющая убрать форматирование для указанных ячеек. Вид диалогового окна и результат форматирования показан на рис.5.13, 5.14.
Рис. 6.3. Диалоговое окно
Рис. 6.4. Результат
форматирования
Выполните следующие действия:
1. Создайте приведенную на рис.6.3 форму. На ней размещены элемент Надпись, две кнопки и элемент RefEdit. Установите необходимые свойства элементов.
2. В общей области окна программы формы декларируйте переменные:
Dim myR As Range
Dim Заголовок As Range
Dim Названия As Range
Dim c As Integer
Dim r As Integer
'присваиваем переменной myR значение (ссылка на
'диапазон берется из элемента RefEdit)
Set myR = Range(RefEdit1.Text)
r = myR.Rows.Count 'число строк в диапазоне
c = myR.Columns.Count 'число столбцов в диапазоне
Set Заголовок = Range(myR.Cells(1,1), myR.Cells(1,c))
Set Названия = Range(myR.Cells(2,1), myR.Cells(2,c))
Заголовок.Select
Selection.HorizontalAlignment = xlCenterAcrossSelection
With Заголовок.Font
.Name = "Arial Cyr"
.FontStyle = "полужирный курсив"
.Size = 14
.ColorIndex = 3
End With
Названия.HorizontalAlignment = xlCenter
With Названия.Font
.Name = "Arial Cyr"
.FontStyle = "полужирный"
.Size = 10
End With
End Sub
Private Sub КнопкаУбратьФормат_Click()
Set myR = Range(RefEdit1.Text)
myR.ClearFormats
End Sub
4. Проверьте работу программы. Для вызова окна используйте кнопку, размещенную на рабочем листе.
Предыдущая Следующая В содержание темы