[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『色のあるセルを並び替えにてエラーが表示される。』(とくと)
お世話になっております。
先日、こちらで「セルの色で並び替え」の
コードについて質問しアドバイスを頂いたのですが
新たな問題が発生したため書き込みを致しました。
質問内容は、ソートの範囲についてです。
・問題は・・・For Each r In ws.Range("A2:K2") のセル範囲です。
(1)Sheet1に、"A2:K2"の範囲に項目をしデータを200行程入力したものに
For Each r In ws.Range("A2:K2")・・・・→正しく処理されます。
これを
(2)Sheet2に、"A2:CN2"の範囲に項目をしデータを200行程入力したものに
For Each r In ws.Range("A2:CN2")
〜〜〜〜下のコード部分が黄色くなってエラー表示〜〜〜〜
.SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _ Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0)
なぜエラーになるのか分かりません。
範囲が範囲が広すぎるのでしょうか?
【エラー無し】
Sub 色ソート1()
Dim r As Range Dim ws As Worksheet Set ws = Worksheets("Sheet1")
With ws.Sort 'ActiveSheet.Sort '並び替え設定を一旦削除 .SortFields.Clear
'A2を含むセル列の黄色色で昇順に並び替える
For Each r In ws.Range("A2:K2")'←←←←←←←←←←←←範囲Kだとエラー無し
.SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _ Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0) Next '並び替える範囲をA1を含む表全体とする .SetRange ws.Range("a1").CurrentRegion '一行目を項目列とする .Header = xlYes '並び替えを実行 .Apply
End With End Sub
【エラー発生】
Sub 色ソート2()
Dim r As Range Dim ws As Worksheet Set ws = Worksheets("Sheet2")
With ws.Sort 'ActiveSheet.Sort '並び替え設定を一旦削除 .SortFields.Clear
'A2を含むセル列の黄色色で昇順に並び替える
For Each r In ws.Range("A2:CN2")'←←←←←←←←←←←←範囲CNにするとエラー
黄色くなる→ .SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _
黄色くなる→ Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0)
Next '並び替える範囲をA1を含む表全体とする .SetRange ws.Range("a1").CurrentRegion '一行目を項目列とする .Header = xlYes '並び替えを実行 .Apply
End With End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
エラーはコンパイルエラーですか?実行時エラーですか? 実行時エラーだとして、そのとき表示されたエラーコードとエラーメッセージはどんなものでしたか?
(β) 2015/02/01(日) 23:30
優先順位のキーは64個が最大です。
なので、2回に分けて並べ替える必要があります。 その際、 1回目を普通優先グループ(BA:CN)、 2回目を最優先グループ(A:AZ) にしてしてください。
(半平太) 2015/02/01(日) 23:41
ありがとうございます。
64個の制限だったんですね。
2回に分けるとできました。
解決です。
ご指導ありがとうございます。
(とくと) 2015/02/02(月) 08:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.