アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。下記プロシージャで数字をキーにして同じbook内のsheetから別のsheetにデータを移そうとしましたが、「実行時エラー ‘1004’ WorksheetFunctionクラスのVLookupプロパティを取得できません。」と出てしまいます。なのが原因かお教えいただけないでしょうか。
------------------------------------------------------------------
Sub データ集計()
Application.ScreenUpdating = False
Dim i As Long
With Sheets("集計")
For i = 138 To Cells(Rows.Count, 1).End(xlUp).Row
.Cells(i, 146) = WorksheetFunction.VLookup(.Cells(i, 1), ThisWorkbook.Sheets("データ").Range("A:D"), 146, 0)
Next
End With
End Sub
------------------------------------------------------------------
よろしくお願いいたします。

質問者からの補足コメント

  • ご回答ありがとうございます。4列目でも同じエラーが出てしまうのです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/04/25 16:52

A 回答 (3件)

こんにちは


明らかに違うのはすでに回答されていますが
VLOOKUP関数は見つからない場合#N/A エラーが返ると思いました
VBAの場合、1004 
.Cells(i, 1)の値が見つからない場合の対策が必要かと・・
    • good
    • 0
この回答へのお礼

ありがとうございました。仮で参照数字を合わせるとちゃんと答えが返ってきました。.cells(i,1)エラー回避プログラムを追加してみます。

お礼日時:2022/04/25 17:22

No1です。



>4列目でも同じエラーが出てしまうのです。
すでにNo2様が回答なさっていますが、検索値が対象範囲に存在しない場合には、関数として結果がエラーになります。

そちらが発生しているのではないでしょうか?
まずは、検索できる値で試してみては?
    • good
    • 0
この回答へのお礼

すごく早い回答をいただきありがとうございました。作業で詰まっているときには大変ありがたいです。本当に感謝しているのですが、もうお一方にcells(i,1)…と明示していただき解決につながりましたのでもう一方の方をベストアンサーとさせていただきました。でも本当にありがたかったです。

お礼日時:2022/04/25 17:25

こんにちは



VLOOKUP関数の第三引数は、何番目の列の値を参照するかを示します。
A:D列は4列しかないのに、146番目の列を指定しているので、エラーになっているものと推測します。
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A