Vba 在电子表格中查找多个值实例

Vba 在电子表格中查找多个值实例,vba,excel,for-loop,while-loop,Vba,Excel,For Loop,While Loop,我试图在VBA中创建一个宏,该宏将在“粘贴页”中的列中搜索包含“转换”一词的任何单元格。一旦我有了那个单元格,我就可以在对应于该行的其他列中收集其他信息。我遇到的问题是创建某种类型的循环,该循环将在整个数据库中运行,以返回单词“conversion”的所有实例。以下是我目前的代码: Sub Conversion() Dim Comment As Range Dim i As String Worksheets("PasteSheet").Activate Range("Comment").

我试图在VBA中创建一个宏,该宏将在“粘贴页”中的列中搜索包含“转换”一词的任何单元格。一旦我有了那个单元格,我就可以在对应于该行的其他列中收集其他信息。我遇到的问题是创建某种类型的循环,该循环将在整个数据库中运行,以返回单词“conversion”的所有实例。以下是我目前的代码:

Sub Conversion()

Dim Comment As Range
Dim i As String

Worksheets("PasteSheet").Activate

Range("Comment").Find("conversion").Select


Worksheets("sheet1").Range("a1") = Selection.Offset(0, -8)

End Sub

救命啊

这里有一种方法可以做到这一点。这将把找到的单词的地址保存在一个数组中,你可以在最后随意使用这个数组。我使用D列作为示例列。必要时做些改变

Sub getCells()
Dim rng As Range, cel As Range
Dim celAddress() As Variant
Dim i As Long
i = 0

Set rng = Range("D1:D" & Cells(Rows.Count, 4).End(xlUp).Row)
ReDim cellAddress(rng.Cells.Count)

For Each cel In rng
    If cel.Value = "conversion" Then
        cellAddress(i) = cel.Address
        i = i + 1
    End If
Next cel

ReDim Preserve cellAddress(i - 1)

For i = LBound(cellAddress) To UBound(cellAddress)
    ' Do whatever with each cell address found
    Debug.Print cellAddress(i)
Next i

End Sub

请参阅以了解如何执行多个查找搜索。特别是内部If块是您所需要的。事实上,它更有用。谢谢你的帮助!我不知道如何让你的工作,但它让我以正确的方式思考,找出它!非常感谢。