プロが教えるわが家の防犯対策術!

Sub ボタン76_Click()
If Len(Worksheets("Sheet1").Range("D12").Value) > 0 Then
Worksheets("Sheet2").Select
Ln = Range("I1048576").End(xlUp).Row
Cells(Ln + 1, 9) = Worksheets("Sheet1").Range("B12")
Cells(Ln + 1, 11) = Worksheets("Sheet1").Range("D12")
Worksheets("sheet1").Select
Else
End If

マクロでのシステムを試行錯誤しながら作っているのですが、
『sheet1のセルD12が「0」であるときsheet1のそのセルとB12のセルを、
 sheet2の一番下のセルへとそれぞれ入力したあと、sheet1へ戻る』という式を作っています。
以前作った時はエラーが出なかったのですが、久しぶりに使った時に
1004のオブジェクトエラーがでました。

どこがエラーの原因なのか、解決策が分かりません…。

A 回答 (3件)

こんにちは



>以前作った時はエラーが出なかったのですが~
ざっと見る限り、ご提示のコードの範囲では「明らかにエラーになりそう」な部分は見当たりません。
(以前は問題なく動作していたとのことなので当たり前ですけれど・・)

ですので、コードの問題と言うよりはPC環境の変化や差異が原因の場合が考えられます。
エラーの発生している行や、エラーメッセージ(=表示されているなら)の内容などが大きなヒントになるはずなのですが、コードの一部だけしかご提示がないので、回答者には妄想を逞しくするしか方法がありません。
他の方の回答にもありますが・・
 ・エクセルの最大行数が異なる
 ・対象シートが存在しない
 ・シートが非表示設定になっている
 ・シートに保護がかけられている
・・・・などなど。


もしも、ご提示の範囲でエラーが起きていることが確実であるのなら、たかが数行にすぎませんので、妄想などをしているよりも、実行の状態や変数の内容をチェックすることで、すぐに原因が見つかるものと思います。
https://www.tipsfound.com/vba/01010
    • good
    • 1
この回答へのお礼

ありがとう

複数人で利用するためか、
シート保護が掛けられていました(T_T)
解除したら解決しました。ありがとうございました。

お礼日時:2022/11/08 17:39

以前と今のPC環境の変化があるのかないのか?


PC変わったらできなかった?
何も変えてなく数か月ぶりにやろうとしたら?
    • good
    • 0

こんにちは


1004のオブジェクトエラーの可能性は・・
シート名 が変更されているケース(存在しないシートを参照している)
Sheet1 と Sheet2 があるか確認してください

先ず無いと思いますが
"I1048576" 現行のExcelなら問題ありませんが 古いExcelで
1048576行まで無いケース
空いている列でCtrl+↓キーを押下して行№を確認してください
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!