1
Excel VBA関数がかなりの時間稼働しています。「What」が見つからないときにExcelのcatchエラーが発生する
Dim rowNum as Integer
for i = 1 to 20
rowNum = Columns(SiteNumCol).Find(What:=i, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).row
<other stuff>
Next i
エラーが返されます。しかし、私はi
は、このコードに存在しない場合にことがわかりました。
rowNum = Columns(SiteNumCol).Find(What:=i, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).row
If Not rowNum = 0 Then
<other stuff>
End If
Next i
それはまだrownum =
ラインで実行エラーが発生したしかし:私はチェックを含めるようにコードをリファクタリングしようとしました。私は何の行番号を呼んでいるとして、それがかもしれないと思ったので、このテストを試してみました:
test = Columns(NumCol).Find(What:=i, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not test Is Nothing Then
rowNum = Columns(NumCol).Find(What:=i, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).row
またエラー424「必要なオブジェクト」とIf文で、今のエラーアウト。私はこれは、 'テスト'が現在最初の繰り返しでエラーとして2倍になっているためだと思います。テストを= "0"
に変更すると、見つからないものが見つかるまで反復され、その後、エラーが発生します。なぜなら、正常な「91」オブジェクト変数が設定されていないためです。
.findエラー何が見つからないとき?
驚くばかり!私が投げたものは、同じコードを欠落した '.row'と再利用していたため、範囲オブジェクトにしていました。私はあなたの答えを見てすぐにペニーは落ちた! – fileinster