
VBA初心者です。
vlook関数をVBAで再現したく、ネットのあれこれを参考にコードを組んでみましたがエラーが出てしまいます。
同一ブックの中にある、Aシートをデータ範囲としてBシートに値を引っ張りたいのですが、
以下のようなコードを書くと「アプリケーション定義またはオブジェクト定義のエラーです」とでます。
Set 範囲 = Sheets("A").Range(A1:D100)
For i = 1 To 100
検索値 = Sheets("B").Range(i , 9)
値1 = Application.WorksheetFunction.VLookup(検索値, 範囲, 2, False)
値2 = Application.WorksheetFunction.VLookup(検索値, 範囲, 3, False)
Next
vlookの前にSetのところでエラーがでます。
どうやら、シートがアクティブではないから、ということのようですが、正直どのように直したらよいものかわかりません。
Sheets("シート名").Range("範囲") とすれば、事前にシートをアクティブにする必要はないと思っていたのですが、そもそも間違っていますでしょうか?
どうぞご教授くださいますと幸いです。
No.2ベストアンサー
- 回答日時:
>Set 範囲 = Sheets("A").Range(A1:D100)
⇒Set 範囲 = Sheets("A").Range("A1:D100")
>検索値 = Sheets("B").Range(i , 9)
⇒検索値 = Sheets("B").Range("I" & i)
>Sheets("B").Range(Cells(i,9),Cells(i,9))
⇒Sheets("B").Cells(i,9)で良いのではないでしょうか。
又、上記のようにRangeとCellsを組み合わる場合、Cellsのオブジェクトが必要で
Sheets("B").Range(Sheets("B").Cells(i,9))としないと駄目です。
ご回答ありがとうございます。
>Sheets("B").Range(Sheets("B").Cells(i,9))としないと駄目です。
まさにこれでした。
Cellsの前にSheetsを入れたら動きました!
ありがとうございます。
No.1
- 回答日時:
Set 範囲 = Sheets("A").Range(A1:D100)
は次のようにします。
Set 範囲 = Sheets("A").Range("A1:D100")
ご返答ありがとうございます。
ご指摘の点ですが、実際のマクロではCells指定で書いていたため、転記した際に記載ミスをした模様です。
大変失礼しました。
こちら以外でエラーとなるような事項はないでしょうか?
【誤】
Set 範囲 = Sheets("A").Range(A1:D100)
検索値 = Sheets("B").Range(i , 9)
【正】
Set 範囲 = Sheets("A").Range("A1:D100")
検索値 = Sheets("B").Range(Cells(i , 9),Cells(i , 9))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
VBA 別ブックからの転記の高速...
-
GASでチェックボックスを一括of...
-
VBA別シートの最終行の次行へ転...
-
EXCELのSheet番号って変更でき...
-
楽天RSSからエクセルVBAを使用...
-
エクセルで重複データの内容を...
-
「段」と「行」の違いがよくわ...
-
【マクロ】実行時エラー '424':...
-
Worksheets メソッドは失敗しま...
-
Excel グラフのプロットからデ...
-
VBAマクロ実行時エラーの修正に...
-
別ブックをダイアログボックス...
-
エクセル 上下で列幅を変えるには
-
Excelで、あるセルの値に応じて...
-
エクセルで離れた列を選択して...
-
Excel UserForm の表示位置
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルVBA 配列からセルに「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
Count Ifのセルの範囲指定に変...
-
VBA別シートの最終行の次行へ転...
-
楽天RSSからエクセルVBAを使用...
-
100万件越えCSVから条件を満た...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
アクセスからエクセルへ出力時...
-
VBAでEXCELから固定長...
-
ExcelのVBマクロを、バックグラ...
-
VBA 別ブックからの転記の高速...
-
Excel VBA オートフィルターで...
-
【VBA】データを各シートに自動...
-
複数シートの複数列に入力され...
-
グラフマクロで系列を変数にす...
-
Unionでの他のシートの参照につ...
-
Excel2013で切り取り禁止
おすすめ情報