0

私は平均的な VBA ユーザーですが、エラーが発生する理由がわかりません。

コードは次のとおりです。

    Set cell = AA.Sheets(sc).Columns("E").Find(Name, LookAt:=xlWhole)
If Not cell Is Nothing Then
    FirstAddress = cell.Address
    Do
        s = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("F" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0)
        p = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("G" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0)
        Set cell = AA.Sheets(sc).Columns("E").FindNext(cell)
    Loop While cell.Address <> FirstAddress 'ERROR ON THIS LINE
End If
Set cell = Nothing

オブジェクト変数または With ブロック変数が設定されていないというエラーが発生します。最初の実行トラフの後、さらに 2 つのパスがあるはずなのに、「cell」は「Nothing」を返しています。「s =」と「p =」の行を削除すると、正しく終了します。私がやっていることのためにそれらが必要です。

これを修正するにはどうすればよいですか?ありがとう!

4

1 に答える 1

0

「s」行と「p」行が Excel の「検索」オブジェクトを使用しているため、このエラーが発生します。アプリケーションの「検索」のインスタンスは 1 つだけです。1 行目で初期化してから、「FindNext」を使用します。これは、間に「検索」オブジェクトを使用しない場合にのみ機能します。

于 2013-07-12T14:31:57.390 に答える