Excel VBA在数组中search单元格中的string

在excel中,

我有一个表中的一堆数据。 简化版本如下。 我有一列有一个活动ID,第二列包含一个string列表,指定该活动为…

活动 – 因素

1 – testing,乐趣,试用

2 – 试用

3 – testing,乐趣,错误

在VBA中,我想查找每个包含Test,Right或者Wrong的活动。

所以我正在考虑一个“For”语句来查看表中的每一行数据。 然后将它与包含string的数组进行比较(Test,Right,Wrong)。 我想它然后返回数组中的活动名称和匹配的值。

Dim FactorMatch as Variant FactorMatch = Array ("Test", "Right", "Wrong") For i = 2 to LastRow if sht.cells(i,"B") = value in array then.... 

现在我卡住了。 我需要一个if语句,它查看Activity单元格,如果它包含FactorMatch中的任何string,则将Activity ID和匹配string保存到另一个数组中。 所以我的Array SavedData最终会看起来像这样

保存的数据= 1testing3testing,错误

我认为这样写会更容易一些。

 dim rng as range, rcell as range dim arr(5000) as string dim counter as long counter = 0 set rng = thisworkbook.sheets("yoursheetname").Range("yourrange") for each rcell in rng.cells IF LCase(Instr(1, rcell.value, "test")) >0 Or _ LCase(Instr(1, rcell.value, "right")) >0 Or _ lCase(Instr(1, rcell.value, "wrong")) >0 Then arr(counter) = rcell.offset(0, numbertoadjustfor).value counter = counter + 1 end if next rcell