Excel VBA 質問スレッド №848 (未解決)
アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : みさこ 投稿日時 : 2022/07/04(Mon) 09:46:21 OS : 未指定 EXCEL : 未指定
セルを結合するコードを書いていますが、
Range("A" & j - 1 & ":A" & j).Mergeで
「アプリケーション定義またはオブジェクト定義エラー」となってしまいます。
ただし、実行すると、セルはしっかりと結合されております。
何が悪いのか見当がつかない状態です。
セルを結合するコードを書いていますが、
Range("A" & j - 1 & ":A" & j).Mergeで
「アプリケーション定義またはオブジェクト定義エラー」となってしまいます。
ただし、実行すると、セルはしっかりと結合されております。
何が悪いのか見当がつかない状態です。
Option Explicit Option Base 1 sub test() Dim j As Long lastRow = Cells(Rows.Count, 1).End(xlUp).Row Application.DisplayAlerts = False For j = lastRow To 1 Step -1 If Cells(j, "A") = Cells(j - 1, "A") Then Range("A" & j - 1 & ":A" & j).Merge 'ここでエラー End If Next end sub
スポンサーリンク
[返信 1] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : 14号 投稿日時 : 2022/07/04(Mon) 10:10:36
Forループの制御変数 j が j=1 のとき
Cells(j - 1, "A")
Range("A" & j - 1 & ":A" & j)
がどこのセルになるのか確認してください
Forループの制御変数 j が j=1 のとき
Cells(j - 1, "A")
Range("A" & j - 1 & ":A" & j)
がどこのセルになるのか確認してください
[返信 2] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : てらてら 投稿日時 : 2022/07/04(Mon) 13:26:50
こんにちは。
Cells(j - 1, "A") で j は 1より大きくなくてはいけません。
こんにちは。
Cells(j - 1, "A") で j は 1より大きくなくてはいけません。
Sub test() Dim j As Long lastRow = Cells(Rows.Count, 1).End(xlUp).Row Application.DisplayAlerts = False For j = lastRow To 1 Step -1 If j > 1 Then If Cells(j, "A") = Cells(j - 1, "A") Then Range("A" & j - 1 & ":A" & j).Merge End If End If Next End Sub
[返信 3] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : 名無し 投稿日時 : 2022/07/18(Mon) 02:01:50
存在しないオブジェクトを比較対象にしているわけです。
つまりループさせるのは2行目までということです。
存在しないオブジェクトを比較対象にしているわけです。
つまりループさせるのは2行目までということです。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-10-22 15:25:02 )