今日、この興味深い問題に遭遇しました。別のループ内にループがあり、両方ともFind
異なる目的で使用しています。何が起こるかというとFind
、内側のループで使用するFind
と、外側のループが台無しになります。私は、 Excelが1つの検索インスタンスのみのメモリを保持していると推測しています。これを回避する方法はありますか、それとも設計上の問題ですか?
これが私のコードの短縮版です。
Sub Main()
'Some boring stuff
Set lst_rapports = Worksheets("mappingTRANSIT").range("lst_rapports")
Set first_result = lst_rapports.Find(rap_choisi)
Set active_result = first_result
Sheets("req01").Unprotect "shoobidoowap"
If Not first_result Is Nothing Then
' ...
Do
Sheets("req01").Select
' ...
For i = 0 To 4
Set rubrique_cell = range("E:E").Find(rub(i))
If Not rubrique_cell Is Nothing Then
' ...
End If
Next i
' Yet more boring stuff...
Set active_result = lst_rapports.FindNext(active_result)
Loop Until active_result.Address = first_result.Address
Else
MsgBox "Impossible de trouver """ & rap_choisi & """ !"
End If
Sheets("req01").Protect "shoobidoowap"
End Sub
.Find
for ループでの の 2 番目の使用に注意してください。
最初の検索をある種の一時変数に保存し、その後元に戻す方法はありますか?
どうもありがとう。