2017-08-14 257 views
0

在excel中,Excel VBA在数组中搜索字符串的单元格

我有一个包含一堆数据的表。简化版本如下。我有与活动ID以及包含该指定的活动看成是一个字符串列表,第二列一列...

活动 - 因子

1 - 测试,趣味,试用

2 - 试用

3 - 测试,趣味,错误

在VBA中,我想找到一个包含测试,对错每个活动。

所以我在想一个“For”语句来查看表中的每一行数据。 然后将它与包含字符串的数组进行比较(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中的任何字符串,然后将Activity ID和匹配的字符串保存到另一个数组中。所以,我的阵列SavedData看起来像这样到底

SavedData = 1测试 3测试,错误

回答

1

,我认为它会更容易把它写这样。

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 
相关问题