Составьте имя вкладки из частей даты и используйте set ws = sheet (имя вкладки), как это
Sub copyRows()
Const COL_DATE As String = "H"
Const ROW1 As Long = 2
Dim mth
mth = Array("", "Jan", "Feb", "Mar", "Apr", "May", "Jun", _
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Dim wb As Workbook, wsMain As Worksheet, ws As Worksheet
Dim iLast As Long, iRow As Long, iTarget As Long
Dim dDate As Date, sTab As String
Set wb = ThisWorkbook
Set wsMain = wb.Sheets("Sheet1")
iLast = wsMain.Range(COL_DATE & Rows.Count).End(xlUp).Row
For iRow = ROW1 To iLast
dDate = wsMain.Range(COL_DATE & iRow).Value
sTab = mth(Month(dDate)) & "-" & Format(dDate, "yy")
Set ws = wb.Sheets(sTab)
iTarget = 1 + ws.Range("F" & Rows.Count).End(xlUp).Row
'c,d,g, and h to b,c,d, and f
With wsMain
.Cells(iRow, "C").Copy ws.Cells(iTarget, "B")
.Cells(iRow, "D").Copy ws.Cells(iTarget, "C")
.Cells(iRow, "G").Copy ws.Cells(iTarget, "D")
.Cells(iRow, "H").Copy ws.Cells(iTarget, "F")
End With
Debug.Print dDate, sTab
Next
End Sub