5.7    Основные свойства и методы объектов семейства WorkSheets

Объект Worksheet представляет собой рабочий лист. Объект Worksheet можно получить, используя свойства ActiveSheet или Worksheets объекта Workbook.

Свойства объектов семейства WorkSheets

Свойства

Описание и допустимые значения

Name

Возвращает имя рабочего листа: Worcsheets(1).Name=”Итоги”

Visible

True (False) – рабочий лист видим (невидим) на экране.

Range

Возвращает ссылку на указанный диапазон ячеек. Например: ActiveSheet.Range("B1")

 

UsedRange

Возвращает диапазон ячеек рабочего листа.

ActiveCell

Возвращает активную ячейку рабочего листа.

Методы объектов семейства Worksheets

Методы

Выполняемые действия

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”)

 События объекта Worksheet

Событие

Когда происходит

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.   Сопоставьте команды программы и выполняемые ей действия

 Option Explicit

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

 3.       Напишите процедуры обработки события Click для кнопок. Они могут быть примерно такими:

 Private Sub КнопкаФорматировать_Click()

        'присваиваем переменной 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.       Проверьте работу программы. Для вызова окна используйте кнопку, размещенную на рабочем листе.

   Предыдущая  Следующая  В содержание темы
Hosted by uCoz