Sub Demo()
Dim tempArr, arr_A, arr_B, arr_D, arr_Oth
Dim a As Long, b As Long, d As Long, o As Long: a = 1: b = 1: d = 1: o = 1
tempArr = Cells(1).CurrentRegion
With Application
ReDim arr_A(1 To .CountIf(Sheet1.Cells(1).CurrentRegion.Columns(3), "A"), 1 To 4)
ReDim arr_B(1 To .CountIf(Sheet1.Cells(1).CurrentRegion.Columns(3), "B"), 1 To 4)
ReDim arr_D(1 To .CountIf(Sheet1.Cells(1).CurrentRegion.Columns(3), "D"), 1 To 4)
ReDim arr_Oth(1 To UBound(tempArr) - UBound(arr_A) - UBound(arr_B) - UBound(arr_D), 1 To 4)
End With
For i = 2 To UBound(tempArr)
Select Case tempArr(i, 3)
Case "A"
arr_A(a, 1) = tempArr(i, 1)
arr_A(a, 2) = tempArr(i, 2)
arr_A(a, 3) = "A"
arr_A(a, 4) = tempArr(i, 4)
a = a + 1
Case "B"
arr_B(b, 1) = tempArr(i, 1)
arr_B(b, 2) = tempArr(i, 2)
arr_B(b, 3) = "B"
arr_B(b, 4) = tempArr(i, 4)
b = b + 1
Case "D"
arr_D(d, 1) = tempArr(i, 1)
arr_D(d, 2) = tempArr(i, 2)
arr_D(d, 3) = "D"
arr_D(d, 4) = tempArr(i, 4)
d = d + 1
Case Else
arr_Oth(d, 1) = tempArr(i, 1)
arr_Oth(d, 2) = tempArr(i, 2)
arr_Oth(d, 3) = "Other"
arr_Oth(d, 4) = tempArr(i, 4)
o = o + 1
End Select
Next
Range("K1").Resize(UBound(arr_A), 4) = arr_A
End Sub
Bookmarks