使用VBA查找多个值实例

时间:2017-08-07 14:55:28

标签: excel vba excel-vba

我正在尝试在工作表中查找特定值并从中提取其他信息。但是,有时该值会多次出现。在这些情况下,我想要在与找到的值相同的行中找到另一组值。下面的代码很适合识别值的特定实例,然后提取信息(即"做东西"部分),但我如何循环它以拉取值和存储的所有实例他们的地址暂时?

谢谢!

--experimental_repository_cache

1 个答案:

答案 0 :(得分:0)

您也可以使用FindNext。

你需要再增加一个var来确保你的findNext方法在到达最后一次出现时不会重新开始

Dim nextISIN As Range


For i = 0 To AccountsLength - 1

CurrentAccount = Worksheets("DataSheet").Range("AccountList")(i + 2)
Set CurrentAccountPage = Worksheets(CurrentAccount).UsedRange
Set FoundISIN = CurrentAccountPage.Find(what:=SearchISIN, LookIn:=xlValues, _                 
    LookAt:=xlPart, MatchCase:=False)

Set nextISIN = CurrentAccountPage.FindNext(FoundISIN)

If Not FoundISIN Is Nothing Then

    Do Until FoundISIN == nextISIN

        'Do stuff

         Set nextISIN = CurrentAccountPage.FindNext(nextISIN)

    Loop

End If

这应该有效。但是,我在乘坐火车时从手机上写字,所以可能会出现语法错误。

我希望它有所帮助:)

  

修改:我想在此发表评论,以便更清晰地了解代码

如果您已经有一个范围,那么您可以遍历它,看看您的SearchISIN是否出现过多次。如果它没有,那么do stuff就可以了。

Dim tempCell As Range
Dim Occurrences As Int

For Each tempCell In givenRange
    If tempCell.Value == SearchISIN Then
        Occurrences = Occurrences + 1
    End If
Next tempCell

If Occurrences == 1 Then
    'Find the cell and do stuff to it
End If

我不是100%肯定你想做什么。尝试下次发布一些数据结构,人们可以更容易地提供帮助:)