Sub wanao()
Dim Bai, Ye, Dai, Xq As Integer
Dim Ban, Nian, jShu As Integer, rShu As Integer
Dim BB(1 To 3, 1 To 366), jS1 As Integer, jS2 As Integer
With Sheet1
Ban = .Range("D1:F1")
Bai = .Range("D2:D" & .Range("D100").End(xlUp).Row)
Ye = .Range("E2:E" & .Range("E100").End(xlUp).Row)
Dai = .Range("F2:F" & .Range("F100").End(xlUp).Row)
Nian = .[a2]
End With
jS1 = 0
jS2 = 0
rShu = 0
'白班 + 带班
For x = 1 To 366
jS1 = jS1 + 1
BB(1, x) = Bai(jS1, 1)
If jS1 = UBound(Bai, 1) Then jS1 = 0
jS2 = jS2 + 1
BB(3, x) = Dai(jS2, 1)
If jS2 = UBound(Dai, 1) Then jS2 = 0
Next
Xq = Weekday(VBA.DateSerial(Nian, 1, 1), vbMonday)
jS1 = 0
jS2 = 0
'夜班
For x = 1 To 366
If Xq <= 5 Then
jS1 = jS1 + 1
BB(2, x) = Ye(jS1, 1)
If jS1 = UBound(Ye, 1) Then jS1 = 0
Xq = Xq + 1
Else
jS2 = jS2 + 1
BB(2, x) = Ye(jS2, 1)
If jS2 = UBound(Ye, 1) Then jS2 = 0
Xq = Xq + 1
If Xq > 7 Then Xq = 1
End If
Next
'将数据放入12个月里
For m = 1 To 12
Set mywb = Worksheets(WorksheetFunction.Text(VBA.DateSerial(Nian, m, 1), "[DBNum1]m月份"))
maxday = VBA.Day(VBA.DateSerial(Nian, m + 1, 0))
With mywb
.Range("D1:F1") = Ban
For x = 1 To maxday
zday = zday + 1
.Cells(x + 1, 4) = BB(1, zday)
.Cells(x + 1, 5) = BB(2, zday)
.Cells(x + 1, 6) = BB(3, zday)
Next
End With
Next
End Sub