VBA迭代搜索每个单元格以获得字符串

时间:2015-06-15 22:30:49

标签: excel

我正在为我的工作设备数据库工作,并且我试图在列的每个单元格中搜索变量字符串,并且一旦找到该字符串,我需要将另一个变量分配给在搜索列I旁边的列中的单元格的值。 我可以执行循环和迭代以及if语句,但是我很难找到一个允许我在特定单元格中搜索字符串的函数。

有没有办法指定单元格的搜索,有点像Cells(x,y).find()等。还是不存在?另外,我发现了很多关于InStr()函数的文档,但是它只计算字符串出现在列中的次数,对吗?有没有办法返回行,找到字符串的单元格数?感谢您提供的任何帮助。

Sub Trans()
Dim A As Range, r As Range, s As String

Set A = Range("A2:A11")

s = "T1"

For Each r In A
    If InStr(1, r.Value, s) > 0 Then
        i = r.Row
        Cells(i, C) = "here"
    End If

Next r

End Sub        

1 个答案:

答案 0 :(得分:1)

您可能正在使用 InStr()。这是一个搜索列的小例子:

Sub SeekingHappiness()
    Dim A As Range, r As Range, s As String
    s = "happiness"
    Set A = Range("A1:A10")

    For Each r In A
        If InStr(1, r.Value, s) > 0 Then
            MsgBox r.Address & vbCrLf & r.Value
        End If
    Next r
End Sub

enter image description here

还有一个 .Find()方法可以最大限度地减少循环。