ник: pashulka
[3:10] и [10:3] действительно возвращают один и тот же диапазон, и в этом можно легко убедиться, если провести небольшой тест, к примеру :
MsgBox Rows("3:10").Address 'Range("3:10").Address
MsgBox Rows("10:3").Address 'Range("10:3").Address
|
А что касается пересечения диапазонов, то сие действие осуществляется либо с помощью оператора пересечения (пробела), либо с помощью уже упомянутой функции Intersect
MsgBox Range("10:10 C:C").Address '[C:C 10:10].Address
|
MsgBox Intersect(Range("10:10"), Range("C:C")).Address 'Intersect([10:10], [C:C])
MsgBox Intersect(Columns("C"), Rows(10)).Address
MsgBox Intersect(Columns(3), Rows(10)).Address
|
Только не забывайте, что диапазоны могут и не пересекаться, а посему, в большинстве случаев лучше использовать второй вариант (), т.е. что-то вроде :
Dim iDiapazon As Range, iCell As Range
Set iDiapazon = Intersect(Range1, Range2, ..., Range30)
If Not iDiapazon Is Nothing Then
For Each iCell In iDiapazon 'при необходимости
'MsgBox iCell.Address, , ""
Next
End If
|