Шаг 11 - Дальше о Range
Разговаривая о выделении ячеек с помощью Range мы с Вами должны знать, что возвращает этот метод множество. Это множество может состоять из одной или нескольких ячеек. А если множество, то информатика говорит о необходимости иметь возможность их объединения.
Sub Test() With Application.Workbooks.Item("Test.xls") Worksheets("Лист2").Activate Dim HelloRange As Range Set HelloRange = Range("D3:D10, A3:A10 , F3") HelloRange.Select End With End Sub
А вот результат работы этого кода.
Раз есть объединения должно быть и пересечение, раз уж идет разговор о теории множеств. Получить его можно вот так.
Sub Test() With Application.Workbooks.Item("Test.xls") Worksheets("Лист2").Activate Dim HelloRange As Range Set HelloRange = Range("A1:A20 A8:D8") HelloRange.Value = "Hello" End With End Sub
Будет выделена всего одна ячейка. Как Вы видите из предыдущих примеров отличаются типом обьявления - "D3:D10, A3:A10" это объединения, а "A1:A20 A8:D8" это пересечение. Используя пересечения и объединения можно строить область любого уровня сложности.
Получив объединение можно узнать количестов ячеек.
Sub Test() With Application.Workbooks.Item("Test.xls") Worksheets("Лист2").Activate Dim HelloRange As Range Set HelloRange = Range("A1:A20, D1:D20") MsgBox (Str(HelloRange.Count)) End With End Sub
Да пора бы уже расказать о этой Str. Эта функция переводит число в строку. Вот пример:
Sub Test() Dim x As Integer x = 10 Dim s As String s = Str(x) MsgBox (s) End Sub
Или так с типом Double она сама определит как переводить, простая и умная, как женщина моей мечты :-)
Sub Test() Dim x As Double x = 10.333333 Dim s As String s = Str(x) MsgBox (s) End Sub
Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.