循环遍历列中的所有单元格并检查每个单元格是否包含字符串中的字符串

时间:2016-06-09 17:13:50

标签: vba excel-vba excel

我每周运行一个excel报告,需要替换某个列中的所有值,具体取决于不同值中存在哪些字符串。

我已经学到了很多关于如何从堆栈溢出循环列,以及instr函数,但我的宏仍然无法正常工作。此外,我发现的许多解决方案都需要实际的字符串进行搜索,但由于每次都会更改,我需要搜索范围。希望有人可以帮我找出原因......提前谢谢你!

Sub FlagReplace()
Dim flagcell As String

rowcount = WorksheetFunction.Count(Range("H:H"))
For i = 2 To rowcount
flagcell = Cells(i, 8).Value

   If InStrB(1, flagcell, "flag_green", vbBinaryCompare) <> 0 Then
       Cells(i, 8).Value = "last month"
   ElseIf InStrB(1, flagcell, "red", vbBinaryCompare) <> 0 Then
       Cells(i, 8).Value = "not last month"
   End If
Next

End Sub

1 个答案:

答案 0 :(得分:0)

我相信您需要选项比较文本来告诉InStr函数比较部分字符串。在您的模块之前,您可以插入它。它允许您比较部分字符串。

几周前我实际上写了一段非常相似的代码。我将代码复制到其中,我使用的是InStr而不是InStrB。如果有效,请告诉我。

Option Compare Text

Sub FlagReplace()
Dim flagcell As String

rowcount = WorksheetFunction.Count(Range("H:H"))

For i = 2 To rowcount

flagcell = Cells(i, 8).Value

   If InStr(1, flagcell, "flag_green") <> 0 Then

       Cells(i, 8).Value = "last month"

   ElseIf InStr(1, flagcell, "red") <> 0 Then

   Cells(i, 8).Value = "not last month"
   End If
Next
End Sub