Поиск n-го вхождения в столбце - Excel VBA - PullRequest
0 голосов
/ 17 февраля 2019

В VBA: мне нужно найти 1-е, 2-е, 3-е, 4-е, 5-е, 6-е и 7-е вхождение «текста» в столбце А. Затем мне нужно вставить значение из ячейки с другого листа в ячейкусправа от этих случаев.Любые идеи?

Это:

Становится таким

Редактировать: другими словами, первое значение в столбце в«Sheet2» должен быть вставлен в ячейку справа от первого вхождения каждой строки в sheet1.Второе значение в столбце должно быть вставлено рядом со вторым вхождением каждой строки и т. Д. Это может происходить до 7 раз.

1 Ответ

0 голосов
/ 17 февраля 2019

Похоже, это решается с помощью двух индексов строк ndx_1 (в Sheet1) и ndx_2 (в Sheet2).

И нескольких начальных значений ndx_1_end, ndx_2_top и ndx_2_end, которые вычисляются изначально.

И переменные памяти - prevColA как строка, изначально установленная как пустая, и thisColA как строка.

Loop thru all of Sheet1, 
   get thisColA
   and whenever ColA changes and is non-blank do two things
       Move thisColA value to prevColA
       Reset ndx_2 to its top minus 1
       endif
   then if thisColA is non-blank
       Increment ndx_2 
       If ndx_2 is past its end, 
          then Move spaces to Sheet1.Cells(ndx_1, "B")  'cleanup
          else Move Sheet2.Cell(ndx_2, Col1) to Sheet1.Cells(ndx_1, "B")
       endif
   increment ndx_1
Until end of non-blank Sheet1 ColA items (e.g. ndx_1 >= ndx_1_end)

Я оставляю вам право сейчас написать код для реализации этого.

...