
こんにちは。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も見ています
-
vbaのvlookup関数エラー原因を教えていただけないでしょうか。
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
8
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
UserForm1.Showでエラーになります。
工学
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
14
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
15
ExcelのVlookup関数で一致した文字のセルの番地を取得する方法
その他(Microsoft Office)
-
16
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
matchプロパティを取得できません…と出ます。
PowerPoint(パワーポイント)
-
19
マクロの「Rangeメソッドは失敗しました’Globalオブジェクト」エラーの解決方法について
Excel(エクセル)
-
20
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
VBScriptからDLL参照設定したい
-
VBAについてです。 初心者です...
-
VBAで既に開いている別アプリケ...
-
エクセルVBAで配列内に空白デー...
-
テキストボックス中の文字列の...
-
AccessVBAで「dim dbs as datab...
-
オブジェクト変数またはWITHブ...
-
ExcelVBAでのNZ関数について
-
Shell.ApplicationのNameSpace...
-
Excel VBA Collection.add で R...
-
列、行番号などをDebug.Printす...
-
InternetExplorer.Application...
-
VBA オブジェクトが空かどうか...
-
CreateObjectとGetObjectの違い
-
ExcelのVBAについて(グラフ操作)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
VBAからPDFファイルにパスワー...
-
エクセルVBAでcode128のバー...
-
VBScriptからDLL参照設定したい
-
VBAについてです。 初心者です...
-
エクセルマクロエラー「'Cells'...
-
オブジェクトが見つかりません
-
エクセルVBAで配列内に空白デー...
-
Excel VBAでWordの複数ファイル...
-
VBScriptでファイルの日時順(降...
おすすめ情報