Excel VBA質問箱 IV

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

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


13158 / 13644 ツリー ←次へ | 前へ→

【6755】オートフィルターと集計について REIKO 03/7/31(木) 12:41 質問
【6756】Re:オートフィルターと集計について こうちゃん 03/7/31(木) 13:24 発言

【6755】オートフィルターと集計について
質問  REIKO  - 03/7/31(木) 12:41 -

引用なし
パスワード
   こんにちは。オートフィルターと集計に
ついての質問です。

下記のような表で、次のような
処理をするにはどうしたらよいでしょうか?
1.B列を基準にソートして、CJ20という
 コードが入力されている行のみ削除する。
2.A列を基準にソートして、品番の頭が
 HPS0999の行のみ削除する。
3.D列の金額をB列のコードを基準に合計する。

-----------------------------------------
    A      B     C      D
1  品番     コード  ユーザー名   金額
2 HPS0999-01   CJ20  マレーシア   1000
3 HSJ0120-01   CJ30  シンガポール  2000
4 HSJ0120-02   CJ20  マレーシア   2000
5 HPS0999-01   CF50  カンコク    1000
6 HSJ0320-01   CF50  カンコク    1000

----------------------------------------
上の3つの動作を1.→2.→3.の順に
行いたいのですが、どうしたらよいでしょうか?
アドバイス下さい。
宜しくお願いします。

【6756】Re:オートフィルターと集計について
発言  こうちゃん E-MAIL  - 03/7/31(木) 13:24 -

引用なし
パスワード
   REIKOさん、こんにちは

ちょっと手があいていたので、1部マクロの記録を使ってコード書いてみました。
どなたかの回答が付くまでのつなぎってことで。お試しください。

>1.B列を基準にソートして、CJ20という
> コードが入力されている行のみ削除する。
>2.A列を基準にソートして、品番の頭が
> HPS0999の行のみ削除する。
>3.D列の金額をB列のコードを基準に合計する。

1.と2.の条件は、最終的にB列で並び替えて集計するので、削除のみ行う


Sub test()
Dim Rg As Range
Dim MaxRow As Long
Dim i As Long

MaxRow = Range("A65536").End(xlUp).Row
For i = 2 To MaxRow
  If Left(Cells(i, 2).Value, 4) = "CJ20" Then
    Cells(i, 2).EntireRow.Delete
    i = i - 1
    MaxRow = MaxRow - 1
  End If
Next
For i = 2 To MaxRow
  If Left(Cells(i, 1).Value, 7) = "HPS0999" Then
    Cells(i, 1).EntireRow.Delete
    i = i - 1
    MaxRow = MaxRow - 1
  End If
Next

Range(Cells(1, 1), Cells(MaxRow, 4)).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
 :=xlPinYin, DataOption1:=xlSortNormal
Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(4), _
 Replace:=True, PageBreaks:=False, SummaryBelowData:=True

End Sub

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