E列の空白セルと空白セルから一つ上のセルを結合させる時にデバックが出てしまいます。
A列では同じ作業をさせてもデバックは出なかったので、どこがエラーになっているのかが分かりません。
変更しなければならない部分をご教授ください。宜しくお願い致します。
コード Sub E列の空白セルと空白セルから1つ上のセルを結合する() Columns("E").Select Dim mydata As Range, i As Long, j As Long Set mydata = Selection For j = 1 To mydata.Column For i = 1 To mydata.Cells(Rows.Count, 1).End(xlUp).Row If mydata(i, j) = "" Then Range(mydata(i - 1, j), mydata(i, j)).Merge End If Next i Next j End Sub
A列で作業させた時は、Columns("A").Selectと記載しており、以降の部分は変更なしでマクロを使っています。
ちなみに、デバックが出るのは、Range(mydata(i - 1, j), mydata(i, j)).Mergeの部分です。
> Range(mydata(i - 1, j), mydata(i, j)).Merge
ここは
> Range(mydata.cells(i - 1, j), mydata.cells(i, j)).Merge
こうでは?
kuma_kuma_様
ご指摘ありがとうございます。教えて頂いたとおりに変更してみたのですが、アプリケーション定義またはオブジェクト定義のエラーということでデバックが出てしまいました。すみません????
エラーが出たときのj、iの値はどうなっていますか?
いいえ、あやまらなくてもいいんですよ
ちょっと質問者様の意図がどっちか判りませんが
> mydata.Range(mydata.cells(i - 1, j), mydata.cells(i, j)).Merge
か
> Range(cells(i - 1, j), cells(i, j)).Merge
どっちなんでしょうか?
という点と
エラーが発生した際、iの値が1じゃないですか?
meg_様
ありがとうございます。上の質問のコードにもあります通り、
For j = 1 To mydata.Column
For i = 1 To mydata.Cells(Rows.Count, 1).End(xlUp).Row
で指定しております。
kuma_kuma_様
お恥ずかしい話ですが、私、エクセルのことも良くわからないまま、会社から頼まれてVBAの作業をしており、いろいろな情報をネットで検索しながら必要と思われるマクロを組み立てていて、詳細な内容まで理解をしていない状況です。kuma_kuma_様のご質問の内容も何を質問されているのかが分からず、申し訳ありません。
いえ、意図としては多分こちらなんでしょう
> mydata.Range(mydata.cells(i - 1, j), mydata.cells(i, j)).Merge
エラー発生個所をこちらに書き換えて下さい。
あと
> For i = 1 To mydata.Cells(Rows.Count, 1).End(xlUp).Row
を
> For i = 2 To mydata.Cells(Rows.Count, 1).End(xlUp).Row
に書き換えて試してください。
kuma_kuma_様
ありがとうございます。教えて頂いたとおりに変更してみましたが、残念ながら他の列が反応してしまい、E列のセルの結合にはなりませんでした。すみません。
質問は「エラーが出たときのj、iの値はどうなっていますか?」です。数字を教えてください。