Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> Объекты Microsoft Excel >> Строковые ссылки в стиле А1 или имена диапазонов >> Свойства CurrentRegion и UsedRange

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Свойства CurrentRegion и UsedRange


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

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

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

Sub FormatRange()
     Set myRange = Worksheets("Sheet1").Range("A1").CurrentRegion
     myRange.NumberFormat = "0.0"
End Sub

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

Пусть активный лист содержит результаты каких-то измерений за определенный период времени. В первой колонке использованного диапазона записаны даты, во второй ? время, а в третьей и четвертой ? результаты измерений. Вы хотите написать код, который объединяет пары ?дата-время? в одно значение, преобразует время из GMT (Greenwich Mean Time ? время по Гринвичу) в PST (Pacific Standard Time ? стандартное время Тихоокеанского побережья США) и применяет к полученному значению формат даты. В таблице могут быть пустые строки и колонки. Чтобы получить весь использованный диапазон, включая пустые строки, можно задействовать свойство UsedRange. Вот один из вариантов преобразования и форматирования дат и времени:

Sub ConvertDates()
     Set myRange = ActiveSheet.UsedRange
     myRange.Columns ("C") .Insert
     Set dateCol = myRange.Columns("C")
     For Each с In dateCol.Cells
          If c.0ffset(0, -1).Value <> "" Then
               c.FormulaR1C1 = "=RC[-2]+RC[-1]-(8/24)"
          End If
     Next с
     dateCol.NumberFormat = "mrnm-dd-yyyy hh:mm"
     dateCol.Copy
     dateCol.PasteSpecial Paste.: =xlValues
     my Range.Columns( "A:B" ).Dele
te
     dateCol.AutoFit
End Sub

Заметьте: чтобы получить третью колонку в использованном диапазоне, применяется выражение ActiveSheet. UsedRange. Columns( "С"), но на самом листе эта колонка может быть любой по счету ? использованному диапазону могут предшествовать пустые колонки.

Другие свойства и методы объекта Range позволяют строить весьма сложные выражения, возвращающие поддиапазоны (subranges) или наддиапазоны (super-ranges) этого объекта. Среди свойств и методов, обычно применяемых с этой целью, можно отметить Areas, Cells, Columns, EntireColumn, EntireRow, Range и Rows.



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017