Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектVBA.doc
Скачиваний:
15
Добавлен:
07.03.2016
Размер:
200.7 Кб
Скачать

Числовые индексы строк и колонок

Получить нужную ячейку можно и так: указать индексы строки и колонки, на пересечении которых она находится. Первым задается индекс строки, за ним следует индекс колонки.

Чтобы:

Напишите:

Изменить значение в ячейке А1

Worksheets("Лист1").Cells(1, 1).Value = 3 на листе Sheetl

Задать формулу для ячейки В 1

Cells(1, 2). Formula = "=5-10*RAND()" на активном листе

Установить объектную переменную

Set objRange = Worksheets( "Sheetl"). Cells(1, 1)

Числовые индексы строк и колонок очень удобны при обращении к ячейке по значению счетчика цикла.

Свойства NumberFormat и WrapText

NumberFormat устанавливает числовой формат.

Пример

Установить числовые форматы для ячейки A17, первой строки, столбца C (соответственно) на листе Лист1.

Worksheets("Лист1").Range("A17").NumberFormat = "General"

Worksheets("Лист1").Rows(1).NumberFormat = "hh:mm:ss"

Worksheets("Лист1").Columns("C"). NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"

WrapText устанавливает многострочный текст.

Пример

Форматировать ячейку B2 на листе Лист1 так, чтобы в ячейке текст переносился по словам.

Worksheets("Лист1 ").Range("B2").Value = "This text should wrap in a cell."

Worksheets("Лист1 ").Range("B2").WrapText = True

Свойство Offset

Весьма часто возникает необходимость обратиться к диапазону ячеек, кото­рый отстоит от другого диапазона на определенное число строк и колонок. Свойство Offset объекта Range принимает аргументы RowOffset и ColumnOffset и возвращает новый диапазон. В следующем примере программа оп­ределяет тип данных в каждой ячейке из диапазона А1:А10 и перечисляет эти типы в колонке, расположенной справа от исходных ячеек:

Sub ScanColumn()

For Each c In Worksheets("Лист1").Range("A1:A10").Cells

If Application.IsText(c.Value) Then

c.0ffset(0, 1).Formula = "Text"

Elself Application.IsNumber(c.Value) Then

c.0ffset(0, 1).Formula = "Number"

Elself Application.IsLogical(c.Value) Then

c.0ffset(0, 1).Formula = "Boolean"

Elself Application.IsError(c.Value) Then

c.0ffset(0, 1).Formula = "Error"

Elself c.Value = "" Then

c.0ffset(0, 1).Formula = "(blank cell)"

End If

Next c

End Sub

Свойства CurrentRegion и UsedRange

Эти два свойства очень полезны, когда программа работает с диапазонами, размерами которых вы не можете управлять. Текущий регион (current region) — это диапазон ячеек, ограниченный пустыми строками и колонками или соче­танием пустых строк, пустых колонок и границ рабочего листа.

CurrentRegion — свойство объекта Range. На листе может быть несколько текущих регионов — все зависит от того, к какому объекту Range Вы обращаетесь.

Допустим, лист Лист1 содержит список, для которого Вы хотите установить формат чисел. Единственное, что известно об этом списке, — он начинается с ячейки А1; число строк и колонок в нем Вы не знаете. В следующем примере показано, как отформатировать такой список через свойство CurrentRegion:

Sub FormatRange()

Set myRange = Worksheets("Лист1").Range("A1").CurrentRegion

myRange.NumberFormat = "0.0"

End Sub

Использованный диапазон (used range) ограничен левой верхней и правой нижней заполненными ячейками, наиболее удаленными друг от друга. В этом диапазоне содержатся все заполненные ячейки листа, а также расположен­ные между ними пустые ячейки. На листе может быть только один такой диапазон, и UsedRange является свойством объекта Worksheet, а не Range.