以下のコードを使い、ある表を「ColorIndex」が 34の時は一番上、色の指定なし「0」の時はその下、その他の色の時は表の下のほうに集まるように並べ替えていました。
今回、表の右半分を「非表示」として、並べ替えを実施したいのですが、
「ENDC = Cells(2, Columns.Count).End(xlToLeft).Column」
だと非表示分のセルをカウントしてくれず、表の表示分しか並べ替えできません。
非表示分を含めたの列数を求めるにはどのようにすればよいでしょうか。
修正点等有りましたらアドバイスいただけると幸いです。
Dim ENDR As Long '最終行 Dim ENDC As Long '最終列 Dim i As Long '無効化データ開始 ENDR = Cells(Rows.Count, 2).End(xlUp).Row ENDC = Cells(2, Columns.Count).End(xlToLeft).Column'ここです! With ActiveSheet.Sort .SortFields.Clear .SortFields.Add2(Key:=Cells(3, 3), SortOn:=xlSortOnCellColor).SortOnValue.ColorIndex = 34 .SortFields.Add2(Key:=Cells(3, 3), SortOn:=xlSortOnCellColor).SortOnValue.ColorIndex = 0 .SetRange Range(Cells(3, 1), Cells(ENDR, ENDC)) .Header = xlNo .Apply End With i = 3 '無効化までの行数 Do While Cells(i, 3) <> "" If Cells(i, 3).Interior.ColorIndex = 15 Then Exit Do End If i = i + 1 Loop
※「ここです!」と書かせていただきました!
よろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/01 02:50
2021/01/01 07:38 編集
2021/01/01 05:47