Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


54615 / 76738 ←次へ | 前へ→

【26909】Re:並べ替え
回答  りん E-MAIL  - 05/7/23(土) 9:46 -

引用なし
パスワード
   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
0 hits

【26906】並べ替え cap 05/7/23(土) 2:02 質問
【26909】Re:並べ替え りん 05/7/23(土) 9:46 回答
【26927】Re:並べ替え cap 05/7/23(土) 11:53 お礼
【26910】Re:並べ替え IROC 05/7/23(土) 9:48 発言
【26928】Re:並べ替え cap 05/7/23(土) 11:56 お礼

54615 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free