0

こんにちは、 range プロパティを設定するコードを書きましたが、しばらくの間は正常に動作しています。以下の例は私のコードです。

row_no = Ydim1 * matrix - Ydim1 + matrix
Set rng1 = Range("A" & row_no & ":" & c & row_no).Find(What:=somevar, LookIn:=xlValues,      Lookat:=xlWhole)

Ydim1 が 72 に等しく、matrix が 1 に等しい場合、行が 1 に等しく、c ="EO" の場合、ydim1 が 74 に等しく、matrix =1 の場合、row_no =1 のみが rng1 には何も表示されない場合、正しく機能します。

前もって感謝します

4

2 に答える 2

2

デバッグへようこそ。

使用する

debug.print "A" & row_no & ":" & c & row_no 

範囲が適切に設定されているかどうかを確認し、すべての行番号が 0 を超えていることを確認し
ます 。

debug.print somevar 

ルックアップ値を確認します。
この特定のケースでは、デバッグ モードで .select を使用して範囲を視覚的に確認しても問題ありません。

即時ウィンドウ コマンドを使用して、同様の結果を得ることができます。

print <variablename>
? <variablename> 'This is the same, represented by a question mark

デバッグする行の後にブレークポイントがあるデバッグ モードで)。

これらの手順に従えば、問題の原因が見つかると確信しています。

于 2012-10-31T15:01:56.170 に答える
0

これが役立つかどうかはわかりませんが、Offsetプロパティを使用すると、次のように簡単にはなりません。

   Set rng1 = Range(Range("A1").Offset(row_no,0), Range("EO").Offset(rowno,0)).Find(What:=somevar, LookIn:=xlValues,Lookat:=xlWhole)
于 2012-10-31T11:55:46.337 に答える