|
▼りん さん:こんにちは。
ありがとう御座いました。
完璧です。
>cap さん、おはようございます。
>
>>1つのブックに数多くのシートがあります。
>>A列からI列まで3行目以降文字や数字や記号が入ってます。
>>A列には、3行目以降日付が 2004年5月28日 の形式で1年数か月分並んでい
>ます。
>>現在、日付は最終行が古く、A3セルが新しい状態です。
>>これを逆に、下は行くほど新しい日付になる様に並べ替えたいのです。
>
>これを手動でやってみて記録するとだいたいこんな感じです。
>Sub Macro2()
>' Macro2 Macro
> Range("A3:A300").Select
> Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
> OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
> :=xlPinYin
> Selection.NumberFormatLocal = "m""月""d""日"""
>End Sub
>
>そこから、いらないSelectをはずして、シートでループし、範囲をそれぞれ設定するようにしたらこんな感じです。
>Sub test()
> Dim ws As Worksheet
> Application.ScreenUpdating = False
> '現在表示しているブックの全シートをループ
> For Each ws In ActiveWorkbook.Worksheets
> With ws
> 'A列の最下行
> Rmax& = .Range("A65536").End(xlUp).Row
> If Rmax& > 3 Then
> 'A列のデータの範囲
> Set r1 = .Range(.Cells(3, 1), .Cells(Rmax&, 1))
> 'I列まで範囲を拡張してソート
> r1.Resize(r1.Rows.Count, 9).Sort Key1:=.Cells(3, 1), _
> Order1:=xlAscending, Header:=xlNo
> 'セル書式→数値の書式設定
> r1.NumberFormatLocal = "m""月""d""日"""
> End If
> End With
> Next
> Application.ScreenUpdating = True
>End Sub
|
|