こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAでVlookupを使って

いつもお世話になっています。
VBAで現場検索登録シートと言うところに
一覧シートからVlookupを使って
表示させようと思い作りました。
エラーも何もでません。
ただ、表示されるものがちゃんと検索されるものと
まったくされないものがあります。
Vlookupはマクロの記録から作ったものです。
原因がわかりません。
よろしくお願い致します。

'検索ボタン
Private Sub CommandButton6_Click()

'送り方
Range("C4:D4").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,22,FALSE)"
Selection.Value = Selection.Value

'封筒
Range("C5:D5").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,23,FALSE)"
Selection.Value = Selection.Value

'得意先名ふりがな
Range("C6:F6").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,6,FALSE)"
Selection.Value = Selection.Value

'得意先名
Range("C7:F8").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,4,FALSE)"
Selection.Value = Selection.Value

'現場名ふりがな
Range("C9:H11").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,9,FALSE)"
Selection.Value = Selection.Value

'現場名
Range("C10:H11").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,7,FALSE)"
Selection.Value = Selection.Value
End Sub

エラーも何もなく、ちゃんと動くことは動きます。
検索結果が、検索コードによって違うのです。
よろしくお願い致します

投稿日時 - 2005-06-05 20:21:58

QNo.1431195

暇なときに回答ください

質問者が選んだベストアンサー

回答が遅くなりました。

> 一覧表が昇順になっていないからだとわかりましたが

最後にFALSEを指定してますので、ソート順は関係無いと思いますけど、、、

> このエラーがでます。「#REF!」

"=VLOOKUP(R2C5,一覧!R5C1:R2000C54,55,FALSE)"
でC54なのに55を指定してますから#REF!が出るのは当然でしょう。

> また、検索結果が空白の場合、「0」が表示されるのを

この書き方で行くのなら、

ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,4,FALSE)"



ActiveCell.FormulaR1C1 = _
  "=IF(VLOOKUP(R2C5,一覧!R5C1:R2000C54,4,FALSE)="""", """"," & _
    "VLOOKUP(R2C5,一覧!R5C1:R2000C54,4,FALSE))"

に変えるとか。

投稿日時 - 2005-06-09 00:22:10

お礼

ありがとうごさいます。
単純なミスだったんですね。
すみません。
また、ソートは関係がないと言うことで
このままやってみます。
<m(__)m>

投稿日時 - 2005-06-12 12:47:11

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

別段おかしい所は無いと思いますが、、、

> 検索結果が、検索コードによって違うのです。

検索値は数値ですか?
実行後に #N/A も出ない?

一覧表のA列を全て選択して、データ-区切り位置-完了
とするとどうなる?
(コピーブックでテストするか、保存しない事)

投稿日時 - 2005-06-05 21:58:39

補足

一覧表が昇順になっていないからだとわかりましたが
このエラーがでます。「#REF!」
'注意
Range("E24:H28").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R2C5,一覧!R5C1:R2000C54,55,FALSE)"
Selection.Value = Selection.Value

この部分です。
他にもでます。
結合セルが問題?
それとも、関数が実行されるセルの順序が問題なのでしょうか?
また、検索結果が空白の場合、「0」が表示されるのを
無くすことはできますか?

投稿日時 - 2005-06-07 20:31:43

あなたにオススメの質問