Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: 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


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.