[[20140920160456]] 『マクロで他ブック内のテーブルをVLOOKUPしたい』(らいつい) ページの最後に飛ぶ

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

 

『マクロで他ブック内のテーブルをVLOOKUPしたい』(らいつい)

いつも参考にさせていただいています。また助けてください。

マクロ内でvlookupを使っています。
参照先のデータの件数が流動的なので、動かすたびに範囲の行数を書き直していました。
同様の箇所が複数あり、さすがにめんどくさくなってきたので、参照先のシートをテーブルにしたいと思っています。

本体のシートの
AにはBを「サンプル.xlsx!情報テーブル」(同一フォルダ別ブック)から
CにはDを「a_list」(同一ブック)から
をそれぞれ参照しています。

「a_list」、および「情報テーブル」をテーブルに設定し、コードを下のように書き直しました。
(コメントになっているのが修正前です)
同一ブック内(a_list)はうまくいきましたが、別ブック(情報テーブル)ではエラーになってしまいます。
パスの有無や、[]やシングルコーテーションの使い方などに問題がありますか?

どうかご教授お願いいたします。

====以下コード抜粋====

'//最終行を求める
Dim End_Row As Long
End_Row = Range("A1").End(xlDown).Row

'//テーブルから情報取得
Dim i As Long

For i = 1 To End_Row

    Range("A" & i).Formula = "=VLOOKUP(B" & i & ",'C:\TEST\サンプル.xlsx'情報テーブル[[情報1]:[情報5]],3,FALSE)" '//うまくいかない
  Range("C" & i).Formula = "=VLOOKUP(D" & i & ",a_list[[項目1]:[項目3]]?,2,FALSE)"               '//うまくいく

 '//Range("A" & i).Formula = "=VLOOKUP(B" & i & ",[サンプル.xlsx]情報テーブル!$A$1:$E$88,3,FALSE)"  
 '//Range("C" & i).Formula = "=VLOOKUP(D" & i & ",a_list!$A$1:$C$50,2,FALSE)"

Next i

< 使用 Excel:Excel2010、使用 OS:Windows7 >


あれ、コピペでごみが入っていますね。失礼しました
コード抜粋の[項目3]]の後ろに?が見えますが何もありません

(誤) [項目3]]?,2,FALSE)"  → (正) [項目3]],2,FALSE)"
(らいつい) 2014/09/20(土) 16:37


こういうのは最初からコードを書くのではなく
実際のセルに関数を手入力し間違いがない結果がでることを確認してから、
その式をコピペして編集するのが簡単です。
(マナ) 2014/09/20(土) 22:25

>マナ様
ご指摘のこと、既に確認済でして……

実際にセルには
=VLOOKUP(B1,'C:\TEST\サンプル.xlsx'情報テーブル[[情報1]:[情報5]]?,3,FALSE)
と入力し、望んだ結果が得られています。

それを 
"=VLOOKUP(B" & i & ",'C:\TEST\サンプル.xlsx'情報テーブル[[情報1]:[情報5]]?,3,FALSE)" 
↑このようにマクロ内に記述するとエラーになりました。

(ら) 2014/09/23(火) 21:30


 >=VLOOKUP(B1,'C:\TEST\サンプル.xlsx'情報テーブル[[情報1]:[情報5]],3,FALSE) 
 >と入力し、望んだ結果が得られています。 

 情報テーブルの前に「!」マークが無くても大丈夫だったんですか?

(半平太) 2014/09/23(火) 23:17


コメント返信:

[ 一覧(最新更新順) ]


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