在列中查找第n个出现-Excel VBA

时间:2019-02-17 06:02:32

标签: vba find

在VBA中:我需要在A列中找到“文本”的第一,第二,第三,第四,第五,第六和第七次出现。然后,我需要将另一个工作表中一个单元格的值插入该单元格中在这些事件的右边。有什么想法吗?

This:

Becomes this

编辑:换一种说法,“ Sheet2”列中的第一个值必须插入到sheet1中每个字符串的第一个出现的右边的单元格中。该列中的第二个值必须插入每个字符串的第二个出现的位置旁边,以此类推。最多可能会发生7次。

1 个答案:

答案 0 :(得分:0)

这似乎可以通过两个行索引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)

我留给您编写代码以实现此目的。