|
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
|
|