プロが教えるわが家の防犯対策術!

エクセルVBAでvlookupのマクロを組んでいるのですが、
「worksheetクラスのvlookupプロパティを取得できません。」というメッセージが出てきて実行できません。
色々調べてみたのですが、どこがおかしいか分からず…
やろうとしていたことは
・〇〇と書かれているセルの隣の列のセル(Aとします)に、同じシートの同行4列目のセル(B)を検索値として、別のシート上で検索し、見つかったセル(C)からさらに右方向に5列進んだセル(D)の値を貼りつけたいというものです。
図で表すとこんな感じ
シート① B A
|| ↑貼り付け
シート② C D

具体的なマクロの内容は
①××と入力されたセルを検索
②××と入力されたセルは複数セルを結合したものなので、その下の〇〇というセルを検索(〇〇は同じシート上に複数あるので、「××の下の〇〇」という風に絞りたいのです。)
③〇〇と入力されたセルの隣の列のセルに、同行4列目の値を検索値として、シート2から検索し見つかったセルから5列後のセルの値を入力する
ということをしています。
以下書いたマクロです。
dim i as long
dim findcln as range
dim findcln2 as range
dim ws1 as worksheet
dim ws2 as worksheet
set findcln = range("a1:ef11").find(what:= "××")
set findcln2 = range("a1:ef11").find(what:= "〇〇", after:= findcln, searchorder:= xlbycolumns)
for i = 12 to cells(rows.count,4).end(xlup).row
cells(i, findcln2.column+1) = worksheetfunction.iferror(worksheetfunction.vlookup(ws1.cells(i,4), ws2, 5, false), "")
next i

説明重複し、分かりづらくなってすみません。
vlookupのところだけ抜いてきても良かったのかもしれませんが、全部載せた方がどこがおかしいか見つけやすいと思い載せました。

回答頂ける方、何卒よろしくお願い致します。

A 回答 (1件)

Vlookupの2つ目の引数は


Worksheetオブジェクトではなく
Rangeオブジェクトを指定します。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!