Sub Coupons()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim arr
Application.ScreenUpdating = False
Set ws1 = Sheets("sheet2")
Set ws2 = Sheets("sheet3")
ar = ws1.[A1].CurrentRegion
hdr = Array("Security", "PMT", "Date", "Schedule", "Frequency")
ReDim arr(1 To 5, 1 To 1)
n = 0
For i = 2 To UBound(ar, 1)
jj = ar(i, 5)
freq = 12 / ar(i, 4)
n = n + 1
ReDim Preserve arr(1 To 5, 1 To n)
arr(1, n) = ar(i, 1)
arr(3, n) = ar(i, 2)
arr(4, n) = "Maturity"
arr(5, n) = ar(i, 4)
cpndate = ar(i, 3)
For j = 1 To jj
n = n + 1
ReDim Preserve arr(1 To 5, 1 To n)
arr(1, n) = ar(i, 1)
arr(3, n) = cpndate
arr(4, n) = "Coupon " & j
arr(5, n) = ar(i, 4)
cpndate = WorksheetFunction.EDate(cpndate, freq)
Next j
Next i
With ws2
.[A1].CurrentRegion.ClearContents
.[A1].Resize(1, 5) = hdr
.[a2].Resize(n, 5) = Application.Transpose(arr)
End With
Application.ScreenUpdating = True
End Sub
output on Sheet3
Bookmarks