Разговаривая о выделении ячеек с помощью 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