www.ПЕРВЫЕ ШАГИ.ru :: Шаг 11 - Дальше о Range

VBA

Шаг 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

А вот результат работы этого кода.

11_1.gif (7200 b)

Раз есть объединения должно быть и пересечение, раз уж идет разговор о теории множеств. Получить его можно вот так.

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


Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.