- ベストアンサー
オートフィルタのマクロが動作しない
- Excelで縦に日付がランダムで並んでいる列(C列)があり、その列を日付の新しい順から降順で並ぶよう、オートフィルタ→(空白以外のセル)→降順とやると出来るのですが、その一連の動作をマクロでやろうとすると「実行時エラー'1004'; この操作には、同じサイズの結合セルが必要です。」と出てマクロが作動しません。
- デバッグでみると、Selection.AutoFilter Field:=3, Criteria1:="<>" Range("A1:EA231").Sort Key1:=Range("C1"), Order1:=xlDescending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal と出ていて、2行目のRange~から4行目の~Normalまで下地が黄色くなっています。
- コードがあまり詳しくないもので、どなたか解決法の解るかた、お教えいただけますでしょうか。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーメッセージが示すように、データ範囲(シート内)に結合セルはありませんか? コード自体は基本的に問題ないと思うのですが、最初のセル位置(Selection)がリスト外のセルを選択していた場合は実行時エラーとなりますので、1行目にリスト内のセル(項目名)を選択するようにしておくと確実です。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 もう一度見直してみましたが、これで出来るのではないかと思います。 あくまでも、結合セルの追い出しが目的です。目的が違うようでしたら、どういうマクロの目的か、補足してください。 '------------------------------------------- Sub EjectMerge01() Dim i As Long With Range("A1:EA231") For i = 1 To .Rows.Count .Cells(i, 3).MergeArea.MergeCells = False Next i .Sort Key1:=.Range("C1"), _ Order1:=xlDescending, _ Header:=xlGuess, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal .HorizontalAlignment = xlGeneral End With End Sub
お礼
Wendy02様、こんばんは。ありがとうございます! いただいたコードを貼り付けてみたのですが、 実行時エラー'1004'; が出てしまいました…。 せっかく直していただいたのに申し訳ありません…。 とりあえず、結合セルを解除した状態で進めてみます。 また何か問題が起きたときお力をお貸し願えれば幸いです。 いろいろとご解答いただきまして大変勉強になりました。本当にありがとうございましたm(__)m。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 基本的には、そのコードでは結合セルの追い出しは出来ません。 あえてそれで、結合セルを追い出したいのでしたら、一旦、C列からMergeAraから、結合セルを一般セルに戻して、それでソートしてから、再び結合セルにすることですが、現在のコードからは、結合セルの範囲が分かりませんから、手のつけようがありません。
お礼
Wendy02様、こんにちは。ご解答ありがとうございます! 結合セルの追い出し、というのができるのですか。 >あえてそれで、結合セルを追い出したいのでしたら、一旦、C列からMergeAraから、結合セルを一般セルに戻して、それでソートしてから、再び結合セルにすることですが、現在のコードからは、結合セルの範囲が分かりませんから、手のつけようがありません。 すみません、まだコードが良くわからなく、説明が不足していました…。MackyNo1様の解答でもお答えしましたが、シート内に結合セルがいくつかありましたので、それを解除したら出来るようになりました。解除されたところの文字がみづらいですが、とりあえずなんとか作業はできるのでそれで進めようと思います。ありがとうございました!m(__)m。
お礼
MackyNo1様、ご解答ありがとうございます! >エラーメッセージが示すように、データ範囲(シート内)に結合セルはありませんか? すいません、てっきりC列に結合セルがなければいいのかと思いこんでいました…、シート内に1箇所でもあったら、ダメなのですね。所々結合されていたセルがありましたので、解除したら出来ました! 項目表示が小さくて見づらいところを結合して大きくしていたのですが、あくまで見栄えの問題なので…全て解除して作業を進めます。大変助かりました。ありがとうございました!m(__)m