2013-04-01 3 views
0

В настоящее время у меня есть макрос, который выглядит в другом документе и копирует смещенную ячейку, если значение присутствует. У меня уже есть код ниже (только часть, которая выбирает/копирует ячейку смещения), но она копирует только одну строку. Это нормально для большинства предметов, которые я ищу. Кто-нибудь знает, как изменить код ниже, чтобы скопировать все ячейки, которые содержат мое искомое значение?Копирование нескольких строк в диапазоне

For I = LBound(MyArr) To UBound(MyArr) 

Set Rng = .Find(What:=MyArr(I), _ 
         After:=.Cells(.Cells.Count), _ 
         LookAt:=xlPart, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlNext, _ 
         MatchCase:=False) 

If Not Rng Is Nothing Then 
      FirstAddress = Rng.Address 
      Do 
       'mark the cell in the column to the right if "Ron" is found 
       Rng.Offset(0, 4).Select 
       'Rng.Copy "A" & Rcount 
       Set Rng = .FindNext(Rng) 
      Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress 
      Selection.Copy (Rng) 
     End If 
    Next I 
End With 

ответ

0

Что я предлагаю - это цикл для метода .Find.

Таким образом, у вас есть ряд данных, а именно MyArr, которые представляют его 50 наименований. Вы хотите посмотреть от 0 до 50, пока не найдете свой товар.

Допустим, вы нашли его в positon 8. Теперь вы выполните другой поиск, но на этот раз из пунктов с 9 по 50 и посмотрите, найдете ли вы матч. Если вы не знаете, что их больше нет. Если вы это сделаете, повторите выше, пока не закончите элементы в массиве (диапазон) или у вас больше нет совпадений. Имеет ли это смысл?

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