Excel VBA質問箱 IV

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

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


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

【29135】VLOOKUP関数の使い方について さえ 05/9/26(月) 14:56 質問[未読]
【29136】Re:VLOOKUP関数の使い方について Jaka 05/9/26(月) 15:26 回答[未読]
【29137】Re:VLOOKUP関数の使い方について さえ 05/9/26(月) 16:16 質問[未読]
【29139】Re:VLOOKUP関数の使い方について Jaka 05/9/26(月) 16:46 回答[未読]
【29195】Re:VLOOKUP関数の使い方について さえ 05/9/27(火) 13:39 お礼[未読]

【29135】VLOOKUP関数の使い方について
質問  さえ  - 05/9/26(月) 14:56 -

引用なし
パスワード
   VLOOKUP関数を使いたいのですが、どうしても値が「0」になってしまいます。

↓検索するデータの範囲は一定ではないので、マクロを実行するたびにインプットボックスで範囲を手入力しています。

Set データ = Application.InputBox("データ範囲選択", "データ範囲選択", Type:=8)


↓目的のセルにVLOOKUPを入れているのですが、この式の「データ」の部分に
うまく手入力したデータの範囲が入っていないようで、値はあるはずなのに
実行し終わった結果は「0」になってしまいます。

ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-5],データ,3,FALSE())),0,VLOOKUP(RC[-5],データ,3,FALSE()))"

検索範囲はインプットボックスで指定したいんですけど、この方法で、VLOOKUPを
使うことはできないのでしょうか。
教えてください。よろしくお願いします。

【29136】Re:VLOOKUP関数の使い方について
回答  Jaka  - 05/9/26(月) 15:26 -

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

R1C1形式で書いてあるので、細かくはどのセルなのか解りませんけど...。
こうやって見ると、書き込んだ関数が合っているのかどうか解ります。
Msgbox = "=IF(ISERROR(VLOOKUP(RC[-5],データ,3,FALSE())),0,VLOOKUP(RC[-5],データ

,3,FALSE()))"

セルのアドレスで指定してください。(取りあえず、下はA1形式)
関数 = "=IF(ISERROR(VLOOKUP(RC[-5]," & データ.Address(0,0) & ",3,FALSE())),0,VLOOKUP(RC[-5]," & _
    データ.Address & ",3,FALSE()))"

ActiveCell.FormulaR1C1 = 関数
  ↑のアクティブセルってのが、気になるけど...。

【29137】Re:VLOOKUP関数の使い方について
質問  さえ  - 05/9/26(月) 16:16 -

引用なし
パスワード
   回答ありがとうございます。
セルのアドレスを指定する方法で、A1形式に変えてみました。
もうすこしでできそうなんですが、データ範囲は別シートにあるのです。
説明不足ですいません。


Set データ = Application.InputBox("データ範囲選択", "データ範囲選択", Type:=8)

↓アドレスで指定してみました。
でも、データ範囲は別シートにあるので、参照したい範囲とは違うシートのアドレスが参照されてしまいました。

関数 = "=IF(ISERROR(VLOOKUP(A10," & データ.Address() & ",3,FALSE())),0,VLOOKUP(A10," & _
    データ.Address() & ",3,FALSE()))"
 
Range("F10").Select   
ActiveCell.Formula = 関数


”表”シートのアドレスを参照したいのですが、どこにシートの指定を入れればいいでしょうか。

【29139】Re:VLOOKUP関数の使い方について
回答  Jaka  - 05/9/26(月) 16:46 -

引用なし
パスワード
   ブック名まで所得しますから、適当にinstr、または、mid関数でシート名だけ抜き出してください。

Set データ = Application.InputBox("データ範囲選択", "データ範囲選択", Type:=8)
MsgBox データ.Address(External:=True)

【29195】Re:VLOOKUP関数の使い方について
お礼  さえ  - 05/9/27(火) 13:39 -

引用なし
パスワード
   どうもありがとうございました。
無事にできました!

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