2017-08-14 147 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 
相關問題