The following code, placed in a standard module and assigned to a button, should do the task for you:-
Dim ar As Variant, sh As Worksheet, ws As Worksheet
Dim i As Integer
ar = Array("BA", "WW", "BE", "AB", "HA", "TW")
Set sh = Sheets("January")
Application.ScreenUpdating = False
For i = LBound(ar) To UBound(ar)
Set ws = Sheets(ar(i))
ws.Range("B8", ws.Range("H" & ws.Rows.Count).End(xlUp)(2)).ClearContents
sh.Range("B7", sh.Range("B" & sh.Rows.Count).End(xlUp)).AutoFilter 1, ar(i)
sh.Range("B8", sh.Range("H" & sh.Rows.Count).End(xlUp)).Copy ws.Range("B" & Rows.Count).End(3)(2)
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox "Data transfer completed!", vbExclamation, "Status"
The code will filter Column B for the sheet names and transfer the relevant rows of data to each individual sheet.
Each individual sheet is refreshed each time the code is run.
Following is the link to your sample file with the code implemented:-
In the sample, you'll note that I've cleared all the destination sheets just so you can see how the code works. Click on the "RUN" button to see it work.
I hope that this helps.