Firstly I think your title is misleading, your question is more about "passing" data to several sheet not "parsing" which is something completely different :
This should do what you have asked for:
Sub test()
Dim Firstrow As Long
Dim LastRow As Long
Dim Lrow As Long
Dim ViewMode As Long
Dim Blrow As Long
Dim Garr As Variant
With Worksheets("B shift")
Blrow = .Cells(Rows.Count, "A").End(xlUp).Row
End With
With ActiveSheet
LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
' pick column G in variant array to spped things up
Garr = Range(.Cells(1, 7), .Cells(LastRow, 7))
For Lrow = LastRow To 1 Step -1
If Garr(Lrow, 1) = "B" Then
Rows(Lrow).Copy Destination:=Sheets("B shift").Range("A" & Blrow + 1)
Blrow = Blrow + 1
End If
Next Lrow
End With
End Sub