Excel VBA質問箱 IV

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

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


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

【22072】VBAのVLOOKUP関数について よしこ 05/2/8(火) 12:41 質問[未読]
【22082】Re:VBAのVLOOKUP関数について Jaka 05/2/8(火) 13:42 回答[未読]
【22105】Re:VBAのVLOOKUP関数について よしこ 05/2/8(火) 21:52 お礼[未読]

【22072】VBAのVLOOKUP関数について
質問  よしこ  - 05/2/8(火) 12:41 -

引用なし
パスワード
   どなたか教えてください。
下記のような表があり、Sheet1のA列(品番)をキーとし、それに対応するSheet2のB列(担当)をSheet1のC列に表示させたところ、エクセル2003では正常に作動しました。ところが、エクセル97、2000ではエラー(型が一致しません。)になってしまいます。マクロ初心者の私には原因がわかりません。

尚、#N/Aを消すまたは表示しないようにするにはどうすればよいでしょうか?

Sheet1                Sheet2

A    B    C        A    B    C
品番  数量           品番  担当
a    2             c   山田
b    5             e   鈴木
c    10             a   佐藤
d    20             f   内田
.                 .
.                 .
.                 .

Sub test()

Dim i As Integer   '
Dim n As Integer   '行
Dim 範囲 As Variant   '列

n = Sheets("Sheet1").Range("A65536").End(xlUp).Row
範囲 = Worksheets("Sheet2").Columns("A:B")

 For i = 1 To n

 Worksheets("Sheet1").Select

 Range("C" & i).Value = Application.VLOOKUP((Range("A" & i)), 範囲, 2, 0) ' ← 97、2000でのエラー箇所
 
 Next i

End Sub

【22082】Re:VBAのVLOOKUP関数について
回答  Jaka  - 05/2/8(火) 13:42 -

引用なし
パスワード
   こんにちは。

配列でVLOOKUPが使えるとは思ってもいませんでした。
でも、これだと意味が通じないですね。
2003だと、これでいけるんですか?
範囲 = Worksheets("Sheet2").Columns("A:B")

変数に、セットしてください。
Set 範囲 = Worksheets("Sheet2").Columns("A:B")

変数の型は、Rangeにした方が良いです。

また、最後に
Set 範囲 = Nothing
と解放もした方が良いです。

【22105】Re:VBAのVLOOKUP関数について
お礼  よしこ  - 05/2/8(火) 21:52 -

引用なし
パスワード
   ▼Jaka さん:

返事が遅れてすみません。
アドバイスありがとうございます。エクセル下位バージョンでも無事動作
させることが出来ました。また何かありましたら宜しくお願いいたします。

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