Sub listLeave()
    Dim d As Date, startDate As Date, endDate As Date
    Dim myId As Long, myItem As String, myNote As String
    Dim myRng As Range, rng As Range
    
    With Worksheets("工作表1").Range("A1").CurrentRegion
        set myRng = .Offset(1).Resize(.Rows.Count - 1, 1)
    End With
    
    For Each rng in myRng
        myId = rng
        startDate = rng.Offset(, 1)
        endDate = rng.Offset(, 2)
        myItem = rng.Offset(, 3)
        myNote = rng.Offset(, 4)
        
        For d = startDate To endDate
            With Worksheets("工作表2").Cells(Rows.Count,1).End(xlup).Offset(1)
                .Value = myId
                .Offset(,1) = d
                .Offset(,2) = myItem
                .Offset(,3) = myNote
            End With
        Next d
    Next rng
End Sub