Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12344 / 13646 ツリー ←次へ | 前へ→

【10993】検索についてお伺いします. みんみん 04/2/22(日) 19:47 質問
【10994】Re:検索についてお伺いします. りん 04/2/22(日) 20:06 回答
【10995】Re:検索についてお伺いします. みんみん 04/2/22(日) 20:21 お礼

【10993】検索についてお伺いします.
質問  みんみん  - 04/2/22(日) 19:47 -

引用なし
パスワード
   Dim WS as WorkSheet
Dim Chek as Range
Set WS=Thiswokbook.Worksheets("Sheet1")

for i= 1 to 10
 'その他の処理
  Set Chek=WS.Range(Cells(1,2),Cells(i+1),2).Find(What:="A", _
    LookAT:=xlWhole)
  If Chek Is Nothing Then
    WS.Range(Cells(i+1),2)="A"  
    Exit For
  End If
  'その他の処理
Next

実行をかけると必ず Set Chek... の部分で下記のエラーが表示されてしまいます。
何が原因なのか全くわかりません。どなたか教えて頂けないでしょうか?

ちなみにEXCEL2000を使用しています。

実行時エラー'1004'
アプリケーション定義またはオブジェクトの定義エラーです。

【10994】Re:検索についてお伺いします.
回答  りん E-MAIL  - 04/2/22(日) 20:06 -

引用なし
パスワード
   みんみん さん、こんばんわ。

>Set WS=Thiswokbook.Worksheets("Sheet1")

>for i= 1 to 10
> 'その他の処理
>  Set Chek=WS.Range(Cells(1,2),Cells(i+1),2).Find(What:="A", _
With WS
 Set Chek=.Range(.Cells(1,2),.Cells(i+1,2)).Find(What:="A", _
  LookAT:=xlWhole)
End With
 <<略>>
>実行時エラー'1004'
>アプリケーション定義またはオブジェクトの定義エラーです。
Cellsの閉じカッコの位置がおかしかったからだとおもいますけど、Sheet1がアクティブでない場合にもエラーになるので、Range(Cells(),Cells())と書くときは、参照先のシートを指定する場合は ws.Range(ws.Cells(),ws.Cells())、または上のようにWithでくくりましょう。

【10995】Re:検索についてお伺いします.
お礼  みんみん  - 04/2/22(日) 20:21 -

引用なし
パスワード
   りんさん こんばんわ

お答え頂きありがとうございます。
早速書き直しましたら、エラーになることなく実行することが
できました。
今後は With ちゃんと使って書くようにします。

ありがとうございます。

12344 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free