ОПП(Лекция5)[2014]
.pdfОфисное прикладное программирование
(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