2013-08-13 5 views
0

У меня есть два динамических диапазона, которые я назову rng1 и rng2. У меня есть для каждого/следующего цикла, проходящего через rng1 (пример: A2, A3, A4, A5 и т. Д.). Мне также нужно получить одно значение строки из rng2 (пример: T2, T3, T4, T5 и т. Д.).), но диапазон не всегда одинаковый, поэтому стандартное смещение не будет работать (что я знаю).Смещение до двух динамических диапазонов

Любые идеи?

Как настроить диапазон (за исключением заголовка и находит последнюю строку)

lastrowTN = ws.Cells(65536, phcell.Column).End(xlUp).Row 
Set rngtocopyTN = ws.Range(phcell.Offset(1, 0).Address, Cells(lastrowTN, phcell.Column)) 
+0

Диапазоны создаются и основываются на заголовке. Я добавлю пример в свой пост. – Mike

+2

Это еще не имеет смысла, но если вы уточните, я думаю, что решение должно быть довольно простым ... –

+0

вам нужно определить какое-либо отношение между этими двумя диапазонами. между столбцами A и T есть только .Offset (0,19), но вы сказали, что он не работает. так что найти правило получить помощь ... –

ответ

2

Трудно сказать, без контекста, но я думаю, что метод Intersect может сделать то, что вы ищете. Он найдет пересечение, независимо от того, насколько близко или далеко расположены два диапазона. Таким образом, используя ваш пример:

[EDIT]: Я понял, что вы могли бы в качестве альтернативы использовать метод Cells (код был обновлен, чтобы показать, что а)

Sub tgr() 

    Dim rng1 As Range 
    Dim rng2 As Range 
    Dim LoopCell As Range 

    Set rng1 = Range("A2:A5") 
    Set rng2 = Range("T2:T5") 

    For Each LoopCell In rng1.Cells 
     MsgBox Intersect(LoopCell.EntireRow, rng2.EntireColumn).Address 
     MsgBox Cells(LoopCell.Row, rng2.Column).Address 
    Next LoopCell 

End Sub 

Обратите внимание, что rng1 и rng2 может быть в любой и он все равно найдет их (предполагая, конечно, что они оба находятся на одном листе).

+0

Это то, что мне было нужно: {strYes = Cells (ir.Row, rngtocopyTN.Column) .Value} и вы меня там нашли, спасибо! – Mike

+0

Я пытался избегайте другого цикла, и теперь я могу отправить оба значения ячейки через функцию только с одним циклом. – Mike

Смежные вопросы