Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОПП(Лекция5)[2014]

.pdf
Скачиваний:
14
Добавлен:
30.05.2015
Размер:
1.44 Mб
Скачать

Офисное прикладное программирование

(VBA)

Тема: Работа с содержимым рабочего листа; пользовательские классы

Андреева В.В. - 2014

Работа с содержимым рабочего листа

Нумерация столбцов - A,..,Z,AA,…ZZ,…..

Нумерация строк с 1

Имя ячейки - строка состоящая из названия столбца и номера строки (нотация A1)

Обращение к содержимому рабочего листа выполняется с помощью объекта Range

Страница.Range(Диапазон)

Диапазон определяется в виде строки

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

1. Страница.Range(“A12”)

Страница.Range(“A12:B24”)

2. Dim I as integer I = 12

Dim str = A + CStr(i)

Страница.Range(str)

3. Dim I as Integer

Dim J as Integer

StartRange = “A" + CStr(I)

EndRang = “B" + CStr(J)

Страница.Range(StartRang+”:” +EndRange)

Страница.Range(StartRang,EndRange)

ОбъектыRange и Selection

В Excel все объекты Excel имеют только свойство

Range.

Это свойство имеют и верхний в иерархии объект

Application и Worksheet и сам объект Range,

представляющий объекты нижнего уровня вплоть до ячейки.

Синтаксис :

Property Range(Cell1 [,Cell2]) As Range

Объект Range создается, чаще всего, при вызове свойстваRangeразличныхобъектов

ОбъектыRange и Selection

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

Например, если при вызове используется только одинпараметр, то Cell1 можетбыть:

Именемячейки, например, - "A1"

Диапазономячеек, например, - "A1:B5"

Выражением над диапазонами, содержащим операции объединения (запятая) и пересечения

(пробел), например, -"A1:B5, F1:G8" или "A1:B5 A3:G8"

ОбъектыRange и Selection

Оба параметра - Cell1 и Cell2 определяют прямоугольную область, заданную наименьшим левым верхним углом и максимальным правым углом диапазонов, определяемых параметрами.

Параметрымогутбытьипеременнымикласса Range.

Примеры

Public Sub WorkWithRS()

Workbooks("BookOne").Activate

Worksheets("Лист2").Activate

Range("A3") = 5

Range("A4") = "=A3+2"

Range("A5:A6") = "=A3+A4"

End Sub

В результате такогоприсвоенияопределяютсясвойстваValue илиFormulaобъектаRange,в зависимостиоттипа присваемого значения.

Range("B1").Value = 7

Range("B2").Formula = "=B1+2"

Range("B3:B4").Formula = "=B1+B2"

Примеры

Dim myRange As Range

Set myRange = Range("C1:C4") myRange.Range("A1") = 7 myRange.Range("B1") = 7 myRange.Range("A2") = "=A3+2" myRange.Range("A3:A5") = "=A3+A4"

Свойство Cells

Свойством Cells обладают все Range объекты;

Cells(M,N) – обращение к ячейке в M строке и N столбце, возвращает объект Range;нумерация в начинается с 1.

ActiveSheet.Range("A3:B5").Cells(2, 2)

ActiveSheet.Range(Cells(1, 2), Cells(3, 4))

Worksheets(1).Cells(1, 1).Value = 24

For Each С In Worksheets(" Лист1").Range("A1:D10").Cells If Abs(С.Value) < 0.01 Then С.Value = 0

Next С

Примеры

Range("D1").Select

Selection.Range("A1") = 7

Selection.Range("A2") = "=C1+2"

Selection.Range("A3:A4") = "=C1+C2"

ВызовRangeс двумя параметрами

Dim myRange1 As Range

Set myRange1 = Range("E1", "E6") myRange1.Range("A1") = 27 myRange1.Range("A2") = "=D1+2" myRange1.Range("A3:A6") = "=D1+D2"

В качествепараметровCell1 иCell2могутвыступатьне только ячейки,нои объектыRange.

Dim myr1 As Range, myr2 As Range, myr3 As Range Set myr1 = Range("A11:C15")

myr1.Value = 33

Set myr2 = Range("A13:F14") myr2 = 44

Set myr3 = Range(myr1, myr2) myr3 = 55

Примеры

Свойство Value

ActiveSheet.Range("A3:B5").Cells(2, 2).Value = “Cell 1”

Свойство Text

Dim Str As String

Str = ActiveSheet.Range("A3:B5").Cells(2, 2).Text

Свойство Formula

Range("A11").Formula = "=SUM(A1:A10)"

Метод Clear

ActiveSheet.Range("A3:B5").Clear

ActiveSheet.Cells.Clear