こんにちは。Excel VBAで「worksheetFunctionクラスのVlookupプロパティを取得できません」というエラーが発生してしまっております。
以下構文のどこかおかしなところをご指摘いただけないでしょうか。よろしくお願いします。
For i = 2 To Workbooks("WWW.xlsm").Worksheets("XXX").Cells(Rows.Count,8).End(XlDown).Row
ActiveSheet.Cells(i,23).value = Application.WorksheetFunction.Vlookup(ActiveSheet.Cells(i,8),Workbooks("YYY.csv").Worksheets("ZZZ").Range("A2:C1000"),3,False)
CellsとRangeが混じっていると問題なのでしょうか。
VBA素人にもかかわらずコード修正を求められており、参っております。。
どなたか詳しい方、アドバイスをお願いします。。
No.3ベストアンサー
- 回答日時:
No2です。
連投失礼。
No1様のご指摘にあるように
>Cells(Rows.Count,8).End(XlDown).Row
は、常にその列の最終行(=1048576行)を返しますので、2行目以降全ての行に渡ってループすることになっています。
(エラーにはなりませんが、現実的な処理としてははなはだ疑問の処理です)
その結果として、空白セルを検索値として検索していてLOOKUPでエラーが発生しているものと想像されます。
(ご質問文でのエラーが2行目都の説明だったので、見落としました)
No2の処置を行えばエラーは出なくなりますが、ループが列全体なので、列全体にエラー表示が表示されることになります。
No1様の回答にあるように、ループの範囲も見直してください。
No.2
- 回答日時:
こんばんは
>「worksheetFunctionクラスのVlookupプロパティを取得できません」
>というエラーが発生してしまっております。
完全一致で検索していますので、恐らく、検索値に一致するものが見つからないということだと思います。
(シート関数の場合に、エラー表示されるのと同様です)
対処としては、Lookup関数を使う前に存在を確認する(CountifやFindで)か、あるいは、そのままに対してエラー処理を加えるなどでしょうか。
以下は、エラー処理を加える例です。
(検索値がない場合にどうするのか不明なので、適当にしてあります)
変数宣言をしておいて
Dim v As Variant
ご提示の2行目を以下に変更
On Error Resume Next
v = WorksheetFunction.Vlookup(ActiveSheet.Cells(i,8),Workbooks("YYY.csv").Worksheets("ZZZ").Range("A2:C1000"),3,False)
If Err.Number <> 0 Then v = "エラーだよ"
On Error GoTo 0
ActiveSheet.Cells(i,23).value = v
ではいかがでしょうか?
>CellsとRangeが混じっていると問題なのでしょうか。
>VBA素人にもかかわらずコード修正を求められており、参っております。
一度修正できたりすると、以後、もっと様々なことを求められることになると想像しますけれど、大丈夫なのでしょうか?
No.1
- 回答日時:
こんばんは
明らかに問題を生じる箇所は
Rows.Count,8).End(XlDown).Row です
Rows.Count 一番下の行からXlDownは一番下の行です
Rows.Count, 8).End(xlUp).Rowとしてみてください
また、ActiveSheet.はWorkbooks("WWW.xlsm").Worksheets("XXX")を示しているように思いますので オブジェクト変数にセットした方が分かり易いのでは無いかと思います
更にVlookup関数で見つからなかった時の対策も必要と思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
vbaのvlookup関数エラー原因を教えていただけないでしょうか。
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
-
4
別のシートから値を取得するとき
Visual Basic(VBA)
-
5
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
6
エクセルでエラーが出て困っています。
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
vlookup関数の引数を変数で指定することはできますか?
Excel(エクセル)
-
9
Findプロパティを取得できません
Visual Basic(VBA)
-
10
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
11
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
12
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
13
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
16
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
17
VBAで「致命的なエラー」が出ました。どのくらい致命的なんでしょうか?
Access(アクセス)
-
18
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
19
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
20
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
VBSでレジストリキー名に円マー...
-
Excelでフィルタをかけると警告...
-
ある文字列が全て数字であるか...
-
AccessVBAで「dim dbs as datab...
-
VBからExcelのセルの書式設定を...
-
オートメーションエラー
-
VBScriptでファイルの日時順(降...
-
VBAでWebページにセルの値を入力
-
VBAで別のシートに図形描画
-
VBAでオプションボタンの設定
-
オートメーションエラーについて
-
VBAで Set wb = Sheets(1).Cop...
-
ExcelのVBAについて(グラフ操作)
-
オブジェクトが見つかりません
-
アクセスにてオブジェクト名変...
-
VBAで作成するメール(開封確認...
-
エクセルVBAでcode128のバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
PowerPointVBAでスライドマスタ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ある文字列が全て数字であるか...
-
VBAについてです。 初心者です...
-
VBScriptでファイルの日時順(降...
-
Excelでフィルタをかけると警告...
-
VBAからPDFファイルにパスワー...
-
VBで引数にDictionaryオブジェ...
-
このように書くべきですか? { ...
-
EXCEL VBA オートシェイプナン...
-
テキストボックス中の文字列の...
-
エクセルVBAでcode128のバー...
-
[VBA]CDOメッセージ送信エラー
-
オブジェクトが見つかりません
おすすめ情報