Excel VBA質問箱 IV

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

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


13609 / 13644 ツリー ←次へ | 前へ→

【4595】EXCEL2002 チャノバ 03/3/28(金) 0:54 質問
【4596】Re:EXCEL2002 ポンタ 03/3/28(金) 1:03 回答
【4597】Re:EXCEL2002 チャノバ 03/3/28(金) 1:23 お礼
【4599】Re:EXCEL2002 ポンタ 03/3/28(金) 1:55 回答
【4608】Re:EXCEL2002 エラーメッセージ チャノバ 03/3/28(金) 12:31 質問
【4610】Re:EXCEL2002 エラーメッセージ ポンタ 03/3/28(金) 13:23 回答
【4611】Re:EXCEL2002 エラーメッセージ チャノバ 03/3/28(金) 13:46 質問
【4612】Re:EXCEL2002 エラーメッセージ チャノバ 03/3/28(金) 13:49 質問
【4623】Re:EXCEL2002 解決しました チャノバ 03/3/28(金) 18:46 お礼

【4595】EXCEL2002
質問  チャノバ  - 03/3/28(金) 0:54 -

引用なし
パスワード
   初めてお世話になります。
VBA初心者です。必要に迫られてマニュアル片手に、HELPの使用例を
コピーしまくってます。

Sheets("WORK2")のCells(LINE2, 10)の内容でSheets("WORK1")のJ列を
検索すると言う処理を、「EXCEL2000」で作成し、「EXCLE2002」で実行したところ、
エラーで落ちてしまいます。何故なんでしょう?

Sheets("WORK2").Select
Set Ret = Sheets("WORK1").Range("J:J").Find(Cells(LINE2, 10).Value, LookIn:=xlValue)
If Ret Is Nothing Then
   Cells(LINE2, 12).Value = "Z"
End If

よろしくお願いします。

【4596】Re:EXCEL2002
回答  ポンタ  - 03/3/28(金) 1:03 -

引用なし
パスワード
   Set Ret = Sheets("WORK1").Range("J:J").Find(Cells(LINE2, 10).Value, LookIn:=xlValue)

Set Ret = Sheets("WORK1").Range("J:J").Find(Sheets("WORK1").Cells(LINE2, 10).Value, LookIn:=xlValue)
にしてみたらどうでしょう?

【4597】Re:EXCEL2002
お礼  チャノバ  - 03/3/28(金) 1:23 -

引用なし
パスワード
   早速のアドバイスありがとうございます。
明日会社のEXCEL2002の入ったパソコンで試してみます。

結果はまた報告します。

【4599】Re:EXCEL2002
回答  ポンタ  - 03/3/28(金) 1:55 -

引用なし
パスワード
   早とちりをしました。
先ほどのレスは忘れてください。
スミマセン。

どこでどんなエラーが出るのか教えてください。

【4608】Re:EXCEL2002 エラーメッセージ
質問  チャノバ  - 03/3/28(金) 12:31 -

引用なし
パスワード
   EXCEL97/2000では正常に作動しています。

EXCEL2002で実行すると、以下のエラーメッセージが出ます。
「実行時エラー '9'
 インデックスが有効範囲にありません。」

【4610】Re:EXCEL2002 エラーメッセージ
回答  ポンタ  - 03/3/28(金) 13:23 -

引用なし
パスワード
   1.「WORK1」、「WORK2」という名前のシートが存在するか、
2.「LINE2」に1〜65536までの数値が入っているか

を調べてみてください。

【4611】Re:EXCEL2002 エラーメッセージ
質問  チャノバ  - 03/3/28(金) 13:46 -

引用なし
パスワード
   ▼ポンタ さん:
>1.「WORK1」、「WORK2」という名前のシートが存在するか、
>2.「LINE2」に1〜65536までの数値が入っているか

1.2ともちゃんと入っています。

簡単な処理ですが、
「WORK1」がアクティブな状態で、
Sheets("WORK2").Range("A1").Select
を実行しても、エラーになるのですが?
「実行時エラー1004
 Range クラス のSelect メソッド が失敗しました。」

【4612】Re:EXCEL2002 エラーメッセージ
質問  チャノバ  - 03/3/28(金) 13:49 -

引用なし
パスワード
   ▼ポンタ さん:
>1.「WORK1」、「WORK2」という名前のシートが存在するか、
>2.「LINE2」に1〜65536までの数値が入っているか

1.2ともちゃんと入っています。

簡単な処理ですが、
「WORK1」がアクティブな状態で、
Sheets("WORK2").Range("A1").Select
を実行しても、エラーになるのですが?
「実行時エラー1004
 Range クラス のSelect メソッド が失敗しました。」

追記
Sheets("WORK2").Select
Range("A1").Select  は正常に動きます。。。

【4623】Re:EXCEL2002 解決しました
お礼  チャノバ  - 03/3/28(金) 18:46 -

引用なし
パスワード
   >
>Sheets("WORK2").Select
>Set Ret = Sheets("WORK1").Range("J:J").Find(Cells(LINE2, 10).Value, LookIn:=xlValue)
>If Ret Is Nothing Then
>   Cells(LINE2, 12).Value = "Z"
>End If

EXCEL2000と97では、これで動いていたのですが、
EXCEL2002でエラーになっていたのですが、分かりました・・・
LiikIn:=xlValue で 最後の"s"が無いのが原因でした。
すみません。。。

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