У меня есть проект, который требует много поисков по различным листам, для которых я использую функцию VBA Find
вместе с 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 не наследует эти параметры?Мой код / ход мысли неисправен?