後記コードでいかがでしょうか。
実行後にフィルターは設定していません。
マクロで設定する必要があれば指摘してください。
Option Explicit
Sub sample()
Dim r As Long
Dim LastRow As Long
Dim CPoint As Long
Dim SW As Boolean
'最終行を取得
LastRow = Cells(Rows.Count, 4).End(xlUp).Row - 1
CPoint = Cells(LastRow + 1, 4).Value
'A,Bをセット
For r = 2 To LastRow
If Cells(r, 4).Value < CPoint Then
Cells(r, 5).Value = "B"
Cells(r, 6).Value = "B"
Else
Cells(r, 5).Value = "A"
End If
Next r
'男性のAをA1,A2と交互に分類
SW = True
For r = 2 To LastRow
If Cells(r, 5).Value = "A" And Cells(r, 3).Value = "男" Then
If SW = True Then
Cells(r, 6).Value = "A1"
Else
Cells(r, 6).Value = "A2"
End If
SW = Not SW
End If
Next r
'女性のAをA1,A2と交互に分類
SW = True
For r = 2 To LastRow
If Cells(r, 5).Value = "A" And Cells(r, 3).Value = "女" Then
If SW = True Then
Cells(r, 6).Value = "A1"
Else
Cells(r, 6).Value = "A2"
End If
SW = Not SW
End If
Next r
End Sub
お礼
Hohopapaさん、質問の仕方のご指摘から、今回のコードのご教授まで、重ね重ねありがとうございました! A1とA2の変化にBooleanを利用するのですね。ここを一番悩んでいたのですが、 Not SWで反転できるということを今回初めて知りました。 実は最初「型が一致しない…」とのエラーが出たのですが、 CPoint = Cells(LastRow + 1, 4).Value を CPoint = Cells(LastRow + 1, 5).Value と訂正することで正常に動作しました。 これを元に、実務に適用したいと思います。