• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アプリケーションまたはオブジェクト定義のエラーです)

アプリケーションまたはオブジェクト定義のエラーです

このQ&Aのポイント
  • 新規のレコードを追加入力するために新規入力ボタン(CommandButton2)を作成しましたが、エラーが出てしまいます。
  • コードの確認およびエラーの指摘をお願いします。
  • データを入力するシート「input」およびデータを格納するシート「data」があります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

まず最初の間違いは,VBAの予約語のRowを自前の変数名に使っているところです。 次の間違いは,Integerでは通常は足りません ダメ: dim row as integer 訂正: dim myRow as long エラーの直接の原因は まちがい:これじゃ「セルの値」を取り出している。      しかも空セルの。(=0になる→次の行がエラーになる) row = Sheets("data").Cells(Rows.Count, 2).End(xlUp).Offset(1) 正解:下端の空きセルの「行番号」を調べる myRow = Sheets("data").Cells(Rows.Count, 2).End(xlUp).Offset(1).row

puyopa
質問者

お礼

大変勉強になります、ありがとうございます。

その他の回答 (1)

回答No.2

こんにちは 全体の処理がみえませんが、エラーになる理由は row = Sheets("data").Cells(Rows.Count, 2).End(xlUp).Offset(1) ではなく row = Sheets("data").Cells(Rows.Count, 2).End(xlUp).Offset(1).row のように、最後に.rowをつけていないからだと思われます。 後ろに.rowをつけないと値を取得してくれません。 従って、変数rowの中身が0となり エラーとなります。 あと、変数にrowのような、メソッド、プロパティで使用しているような文字をそのまま 変数として使用すると混乱の元なので、Last_row などのように定義したほうがいいですよ。 なにかあれば補足してください。 それでは

puyopa
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A