[[20031219002324]] 『vlookupの検索値に変数を使って検索したい』(たか) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vlookupの検索値に変数を使って検索したい』(たか)

 Sub test()
 Dim h1 As String
 h1 = ActiveCell.Text
 Range("a2") = "=VLookup(" & h1 & ", T!A:B, 2, False)"
 End Sub

上記の様なマクロを書いてみました。これでActiveCellの値をh1という変数に入れてシートTのA列を検索させているのですが、変数h1に数値が入っている場合は検索結果が正しく返ってくるのですが、日付(2003/12/18)がh1に入って入ると#N/Aというエラーになり、文字列を入れると#NAME?というエラーになっていまいます。本当は日付を変数に入れて検索させるモノを作りたいと思っているのですが、どうしたら良いのでしょうか?
ちなみに、私は超がいくつかついてしまうほどの初心者で全くわかりません・・とほほ。別にvlookup関数に拘らず、検索値に変数を使って、日付とか文字列を検索出来る良い方法があったら、教えて頂ければと思います。どうぞよろしくお願いいたします。


 なんでわざわざマクロを組む必要があるのでしょうか?
 (kazu)


実は日付ごとに各指数を設けて、その指数を元に計算をしたいと思っているのです。
自分でセルに日付を入力して1つ1つ指数を検索させて計算していたらキリがないので、必要な日付を変数に代入させちゃって、その変数を元にシートTから指数を検索させたいと思っているんです。うまく説明出来ないのですが、そんな感じでマクロを使いたいと思っています。で、上記のマクロは、その前段階として、ちゃんと検索結果が得られるかどうかをテストするために作ったのですが、結果うまく行かなかったものですから、質問させて頂きました。
(たか)


 具体的にこのような処理なのでどうしたらよいか質問したほうが
 解決が早いのかもしれませんが。

 ともかく#NAME になるのは h1 の前後に["]ダブルクオーテーションがなくて、
 しかも日付になっていないからです。↓で #NAME は解決すると思います。

 h1 = Chr(34) & ActiveCell.Text & Chr(34)
 Range("a2") = "=VLookup(DateValue(" & h1 & "), T!A:B, 2, False)"

(kazu)


 Sub test()
    Dim h1 As String
    h1 = ActiveCell.Address
    Range("a2").Formula = "=VLookup(" & h1 & ", T!A:B, 2, False)"
 End Sub

 これではだめなんでしょうか  (りな)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.