在excel中,
我有一张包含大量数据的表格。简化版本如下。我有一个列有活动ID,第二列包含一个字符串列表,用于指定该活动为...
活动 - 因素
1 - 测试,娱乐,试用
2 - 试用
3 - 测试,有趣,错误
在VBA中,我想找到包含Test,Right或Wrong的每个活动。
所以我在想一个查看表中每行数据的“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和匹配的字符串保存到另一个数组。所以我的Array SavedData最后会是这样的
SavedData = 1测试 3测试,错误
答案 0 :(得分: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