Hi
You never told where you want output to be placed, so I placed it in
Sheet2, assuming input data is in Sheet1.
Sub aaa()
Dim Del As Long
Dim StartYear As Long
Dim EndYear As Long
Dim y As Long
Dim off As Long
Dim OutputSh As Worksheet
Set OutputSh = Worksheets("Sheet2")
FirstRow = 2 ' Headings in Row 1
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For r = FirstRow To LastRow
Del = WorksheetFunction.Find("-", Range("C" & r).Value)
StartYear = Left(Range("C" & r).Value, Del - 1)
EndYear = Mid(Range("C" & r).Value, Del + 1)
For y = StartYear To EndYear
OutputSh.Range("C2").Offset(off, 0) = y
OutputSh.Range("A2").Offset(off, 0) = Range("A" & r).Value
OutputSh.Range("B2").Offset(off, 0) = Range("B" & r).Value
off = off + 1
Next
Next
End Sub
Regards,
Per