Public Sub GPE()
Dim Rng(), Arr(), I As Long, J As Long, K As Long, N As Long, Rng2(), Arr2()
Rng = Sheet1.Range(Sheet1.[A8], Sheet1.[A65000].End(xlUp)).Resize(, 7).Value
ReDim Arr(1 To UBound(Rng, 1), 1 To 8)
For I = 1 To UBound(Rng, 1)
If Rng(I, 1) = "PC" Or Rng(I, 1) = "PT" Then
If Rng(I, 3) >= Sheet2.[F4].Value And Rng(I, 3) <= Sheet2.[H4].Value Then
K = K + 1
Arr(K, 1) = Rng(I, 3): Arr(K, 4) = Rng(I, 4)
If Rng(I, 1) = "PT" Then
Arr(K, 2) = Rng(I, 1) & Rng(I, 2)
Arr(K, 5) = Rng(I, 7)
Else
Arr(K, 3) = Rng(I, 1) & Rng(I, 2)
Arr(K, 6) = Rng(I, 7)
End If
End If
End If
Next I
Sheet2.Cells.EntireRow.Hidden = False
Sheet2.[A10:I125].ClearContents
If K Then Sheet2.[B10].Resize(K, 6).Value = Arr
''-------------------------------------------
Sheet2.Range("B10:I125").Sort Key1:=Range("B10"), Header:=xlGuess, OrderCustom:=1
''-------------------------------------------
Rng2 = Sheet2.Range(Sheet2.[E9], Sheet2.[E126].End(xlUp)).Resize(, 3).Value
ReDim Arr2(1 To UBound(Rng2, 1), 1 To 1)
Arr2(1, 1) = Sheet2.[H9].Value
For I = 2 To UBound(Rng2, 1)
Arr2(I, 1) = Arr2(I - 1, 1) + Rng2(I, 2) - Rng2(I, 3)
Next I
Sheet2.[H9].Resize(I - 1).Value = Arr2
''----------------------------------
N = Sheet2.[E126].End(xlUp).Row + 1
Rows(N & ":125").EntireRow.Hidden = True
End Sub