Excel2003 Match関数について
WINXP Excel2003 VBA データベース検索について教えて下さい。
Sub データ表示()
Dim no As Long
With Sheets("データ入力")
On Error GoTo エラー処理
no = WorksheetFunction.Match( _
.[B1], [データ].Resize(, 1), 0)
On Error GoTo 0
.[B5] = [データ].Cells(no, 2)
.[D5] = [データ].Cells(no, 3)
.[E5] = [データ].Cells(no, 4)
.[F5] = [データ].Cells(no, 5)
.[B7] = [データ].Cells(no, 6)
.[C7] = [データ].Cells(no, 7)
.[D7] = [データ].Cells(no, 12)
.[B9] = [データ].Cells(no, 8)
.[B11] = [データ].Cells(no, 9)
.[B13] = [データ].Cells(no, 10)
.[D13] = [データ].Cells(no, 11)
Exit Sub
エラー処理:
MsgBox "該当するNo.のデータはありません"
.[B5:F5].ClearContents
.[B7:F7].ClearContents
.[B9:F9].ClearContents
.[B11:F11].ClearContents
.[B13:F13].ClearContents
End With
End Sub
というプログラム(EXCEL極意6VBAという参考文献の一部を利用)で、1枚のシート(”データ”という
名前のデータベース)51列ほどあります。からキー(一番右端の列をキー)の値と一致したデータを
別のシートへ呼び出す方法です。
そこで、こまっているのが、あるキーだとちゃんと呼び出してくるのに、肝心の希望のキーだと、エラーになって該当データ無となってしまうのです。
簡単にかくと
”データ”というデータベース
A列 B列 C列 D列・・・・・・・・ AY列
001 あああ AAAA 2012/08/20 120821002 ←このAY列をキーとして検索
をかけるとエラー処理にいってしまう。
B列”あああ”だとうまくデータを検索してくる。
Vlook関数だとキーとなるデータは一番左端にないといけないということなのですが、Match関数もそうなのでしょうか?
ちなみにオートフィルターでのVBAだとうまくいくのですが、・・・
もしこのつたない文で、御理解いただき、おわかりになる方が、いらっしゃれば、ご指導ください。
もしくは、Match関数以外での検索方法でもけっこうです。
最終的に希望する結果は、D列の日付(重複する日付有)で絞り込み、AY列のキー(重複するデーターは無)でその行のデーターを別シートに表示させること
お礼
ご回答拝読致しました。大変参考になりました。 貴重なお時間を割いてのご回答、誠に感謝致しております。 また機会がありましたら宜しくお願い致します。