[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『実行時エラー』(hori)
RangeA2にVLOOKUP関数で別シートのリストから抽出しオートフィルで下にコピーするマクロを組みました。
Range("A2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[4],リスト!R[-14]C[-5]:R[-13]C[-],2,0)"
hani = Range("B65536").End(xlUp).Row
Range("A2").AutoFill Destination:=Range("A2:A" & hani)
リストにないものは#N/Aとなるので、エラー行を空白とするために、下記の様に変更したところ「実行時エラー’1004'」
「アプリケーション定義または、オブジェクト定義のエラーです。」
となりました。
何処が悪いのか判りません。
何方か教えていただければ幸いです。
Range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[4],リスト!R[-14]C[-5]:R[-13]C[-4],2,0)),"",VLOOKUP(RC[4],リスト!R[-14]C[-5]:R[-13]C[-4],2,0))"
hani = Range("B65536").End(xlUp).Row
Range("A2").AutoFill Destination:=Range("A2:A" & hani)
ActiveCell.FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[4],リスト!R[-14]C[-5]:R[-13]C[-4],2,0))," ←ここまでで セルに入力する数式と認識されてしまうのではないですか? ""の代わりに null としたらどうなりますか? (純丸)(o^-')b
""をnullとしたところ、実行時エラーは無くなりました。
が、リストにないものは空白とならず#NAME?となりました。
リストにあるものは正しく抽出できました。
私の浅い知識で、null が使えると思ったのですがだめでしたか。 そうか、直接のコードじゃなくて、セルに数式で入るからですね、多分。 困った時はマクロの記録、ということで検証してみたら、"" の代わりに """" とすればよさそうです。 (純丸)(o^-')b
実際の作業用シートで早速NULLを""""に変更しました。
ところがリストに無いものは空白となり良いのですが、
今度はリストに有って正しく抽出されていたものが、
#REF!となってしまいました。
式が入ったセルを見て不思議なことに気づいたのですが、
リストに有るもののセルには
=IF(ISNA(VLOOKUP(A2,リスト!#REF!,2,0)),"",VLOOKUP(A2,リスト!#REF!,2,0))
が入っています。
リストに無いもののセルには
=IF(ISNA(VLOOKUP(A2,リスト!D65524:E65525,2,0)),"",VLOOKUP(A2,リスト!E65524:E65525,2,0))
となっており、参照するリストの範囲が変わって、しかも""""としたのが""になっているのです。
なぜでしょうか?不思議です。
不思議ですね。そろそろ私のスキルではお手上げかもしれません。 正しい数式を手入力する作業をマクロの記録したら どうなるでしょうか? あと全然別のことですが、VLOOKUPの参照範囲が相対参照でいいのですか? (純丸)(o^-')b
下から、失礼します。
>ActiveCell.FormulaR1C1 = では無く、 ActiveCell.Formula = で、記入してみるには如何でしょう?
例: ActiveCell.Formula = "=IF(ISNA(VLOOKUP(A2,リスト!範囲,2,0)),"""",VLOOKUP(A2,リスト!範囲,2,0))"
純丸さんが仰っている、 >VLOOKUPの参照範囲が相対参照でいいのですか? が関係しているだけかも・・・
(キリキ)(〃⌒o⌒)b
おっしゃるとおり参照範囲が相対参照だったことが原因でした。
絶対参照に変更が解決しました。
ありがとうございました。
(hori)
出掛けている間に解決してよかったです。(´o`)>ホッ 拙い回答で失礼しました。キリキさんもありがとう。 ひとつだけ(懲りずに)追加すると、特にフィルをする理由が なければ、範囲を指定して一遍に入力させる方が普通と思います。 (純丸)(o^-')b
hani = Range("B65536").End(xlUp).Row Range("A2:A" & hani").Formula = "=IF(ISNA(VLOOKUP(A2,・・・・
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.