为什么Range.FindNext不继承参数?

时间:2019-02-26 10:37:35

标签: excel vba find

我有一个项目,需要通过各种工作表进行大量搜索,为此,我在Find中将VBA的FindNext函数与Do While...Loop一起使用。引起我注意的是,FindNext函数不会继承先前搜索提供的参数。

因此,如果我要声明MatchCase:=True,则FindNext函数可能会找到与搜索字符串不匹配的值。

例如,这就是我要做的(包括FindNext的替代方法)

    Set FindComp = wbc.Range("B2:B" & LRow).Find(splititm(0), MatchCase:=True)
    If Not FindComp Is Nothing Then FRow = FindComp.Row

    Do While Not FindComp Is Nothing
        If wbc.Cells(FindComp.Row, "J").Value = wbc.Cells(cell.Row, "J").Value And wbc.Cells(FindComp.Row, cell.Column).Value <> "" Then
            wbc.Cells(FindComp.Row, cell.Column).Value = ""
        End If

        'Does not inherit arguments
        Set FindComp = wbc.Range("B2:B" & LRow).FindNext(FindComp) 

        'Working alternative
        Set FindComp = wbc.Range("B2:B" & LRow).Find(splititm(0), after:=FindComp, MatchCase:=True)

        If FindComp.Row = FRow Then Exit Do
    Loop

为什么FindNext不继承这些参数?我的代码/思路错误吗?

0 个答案:

没有答案