• ベストアンサー

エクセルVBAのエラーについて

こんにちは、よろしくお願いします。 以下はマクロの一部を抜粋したものです。 最初の分で、jに変数をセットし、次の文で、セットステートメントでtにセットしたいのですが、実行時エラー(アプリショーン定義またはオブジェクト定義のエラーです)と表示されてしまいます。 変数jには、確実に数値が入っております。理由を分かる方いましたらお願いします。 j = Sheets("データ").Range("b7").End(xlDown).Row Set t = Worksheets("基礎データ").Range(Cells(7, 2), Cells(j, 2)) ※エクセル2000を使用しています。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

RangeのシートオブジェクトとCellsのシートオブジェクトが相違するからです。 例 With WorkSheets("基礎データ") Set t = .Range(.Cells(7, 2), .Cells(j, 2)) End With

sukeroku111
質問者

お礼

昨日に続き、迅速なご回答ありがとうございます。 無事マクロが動作しました。今回のご指導内容も、この後勉強していきます。 独学でなかなか思うように理解できませんが、今後ともよろしくお願いします。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

> 以下はマクロの一部を抜粋したものです。 > 最初の分で、jに変数をセットし、次の文で、 > セットステートメントでtにセットしたいのですが、 > 実行時エラー(アプリショーン定義またはオブジェクト定義のエラーです)と表示されてしまいます。 > 変数jには、確実に数値が入っております。理由を分かる方いましたらお願いします。 > >j = Sheets("データ").Range("b7").End(xlDown).Row >Set t = Worksheets("基礎データ").Range(Cells(7, 2), Cells(j, 2)) 「マクロの一部」で何処が悪いか判断できるエスパーの登場に期待してください。 この情報でわかるかもとしたら・・・ "データ"、"基礎データ"など、シート名が間違っている 変数t のデータ型の宣言が間違っている そもそも変数tを宣言していない このくらいじゃないですか? 1番さんへ。 変数tをヴァリアントで宣言しておけば、 多分、With無しでこのままでも処理は続けられますよ? Set文の次の行にでも、   t.Select と書いてお試しくださいませ。

sukeroku111
質問者

お礼

迅速なご回答ありがとうございます。

関連するQ&A

専門家に質問してみよう