10代と話して驚いたこと

https://oshiete.goo.ne.jp/qa/9679066.html
の追加です。
o列には空白のセルが点在する、o列にも同様に並べ替えしたところ、
空白セルが一番下に来てしまいました。
色々チャレンジしてみたのですが、うまくいきませんでした。
以下をご教授お願いします。

エクセルVBA 最終行を選んで並び替え

画像にありますように、
最終行は、増え続けますので変わります。


この表で、優先順位の設定があります。
①「o6」を降順で並べ替えをしたいのです。
 その時、o列にある空欄のセルを一番上に来るように表示したいです。
②「A1」を昇順で並べ替えたいです。
どのように、記述すればよろしいでしょうか?

*日付の色は2種類ありますが、無視で大丈夫です。

シート名は管理表です。
コードの記述お願いします。

よろしくお願いしますm(__)m

「エクセルVBA 最終行を選んで並び替え 」の質問画像

A 回答 (1件)

とりあえずこんな感じではどうでしょうか?


--------------------------------------------------------------------------------------
Sub Sample()
Dim 終 As Long
Dim 行 As Long
終 = Cells(Rows.Count, 1).End(xlUp).Row
For 行 = 7 To 終
If Cells(行, 15).Value = "" Then Cells(行, 15).Value = #12/31/9999#
Next
Range(Cells(7, 1), Cells(終, Columns.Count)).Sort _
Key1:=Range("O7"), Order1:=xlDescending, _
Key2:=Range("A7"), Order2:=xlAscending, _
Header:=xlNo
For 行 = 7 To 終
If Cells(行, 15).Value = #12/31/9999# Then Cells(行, 15).ClearContents
Next
End Sub
--------------------------------------------------------------------------------------
※ ソート前に空欄に最大日付(9999/12/31)を代入して、ソート後にクリアしています。
※ VBA で直接日付を代入する時は「#mm/dd/yyyy#」で代入します。
    • good
    • 0
この回答へのお礼

ありがとうございました。
出来ました。

お礼日時:2017/03/19 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A