Excel VBA質問箱 IV

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

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


40223 / 76732 ←次へ | 前へ→

【41610】Re:ソート(オートフィルター)について
回答  かみちゃん E-MAIL  - 06/8/17(木) 6:33 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>仕上がりは下表のように仕上げたいのですが
>(オートフィルターをかけると、
>例えば「交通費」の下に「交通費(製造)」の順になってしまいます)

オートフィルタは関係ないと思うのですが、
[#41519]で提示したコードに似ていますが、以下のような感じでできると思います。
なお、1行目の最終列(提示の例ですとG列)の右隣の列を作業列として使います。

Sub Macro2()
 Dim LastCell As Range
 Dim c As Range
 Dim cntBumon As Integer
 Dim ws1 As Worksheet
 
 Set ws1 = Sheets("Sheet1")
 
 ws1.Activate
 '最終列の決定
 cntBumon = Range("A1", Cells(1, Cells.Columns.Count).End(xlToLeft)).Columns.Count
 
 Set LastCell = Cells(Cells.Rows.Count, 1).End(xlUp)
 'ソートキーを作業列(最終列+1)に設定
 For Each c In Range("A2", LastCell)
  If Right(c.Value, 4) = "(製造)" Then
   c.Offset(, cntBumon).Value = Mid(c.Value, 1, Len(c.Value) - 4) & "0"
  Else
   c.Offset(, cntBumon).Value = c.Value & "1"
  End If
 Next
 '作業列をキーに並び替え
 Range("A1", LastCell).Resize(, cntBumon + 1).Sort Key1:=Cells(2, cntBumon + 1), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin
 '作業列を消去
 Range("A1", LastCell).Offset(, cntBumon).ClearContents
End Sub

0 hits

【41609】ソート(オートフィルター)について ToShiYo 06/8/17(木) 4:35 質問
【41610】Re:ソート(オートフィルター)について かみちゃん 06/8/17(木) 6:33 回答
【41611】Re:ソート(オートフィルター)について ToShiYo 06/8/17(木) 8:49 質問
【41629】Re:ソート(オートフィルター)について かみちゃん 06/8/17(木) 12:50 回答
【41631】Re:ソート(オートフィルター)について ToShiYo 06/8/17(木) 15:25 質問

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