• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:worksheetsプロパティでエラーが出る)

VBA初心者のためのvlook関数再現についてのエラー

このQ&Aのポイント
  • VBA初心者がvlook関数を再現するためにコードを組んだが、エラーが発生した。具体的には、worksheetsプロパティでエラーが発生した。シートがアクティブではないためと思われるが、解決方法が分からない。
  • 同一ブックの中にあるAシートのデータをBシートに引っ張りたいが、VBAコードでエラーが発生している。具体的には、Set範囲 = Sheets("A").Range(A1:D100)の行でエラーが発生した。
  • VBA初心者がvlook関数をVBAで再現しようとしたが、エラーが発生している。具体的には、シートがアクティブではないためにエラーが発生し、解決策が分からない。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答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))としないと駄目です。

chacoloco
質問者

お礼

ご回答ありがとうございます。 >Sheets("B").Range(Sheets("B").Cells(i,9))としないと駄目です。 まさにこれでした。 Cellsの前にSheetsを入れたら動きました! ありがとうございます。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

Set 範囲 = Sheets("A").Range(A1:D100) は次のようにします。 Set 範囲 = Sheets("A").Range("A1:D100")

chacoloco
質問者

お礼

ご返答ありがとうございます。 ご指摘の点ですが、実際のマクロでは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