Наверное, настолько чистым, насколько я могу это сделать. Есть For
l oop и Do Until
l oop, чтобы дать вам варианты.
Sub repeat()
' define varible types
Dim i, n As Integer
Dim wb As Workbook: Set wb = Workbooks(ThisWorkbook.Name)
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1")
Dim LastRow As Long
' initialize variables
n = 1
i = 1
' do loop until empty cell is found in column 1 (A)
Do Until IsEmpty(ws.Cells(i, 1))
' second loop to define number of iterations
For n = 1 To ws.Cells(i, 2)
' find last row to keep adding to the bottom of the list
LastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
' populate list
ws.Cells(LastRow + 1, 3) = ws.Cells(i, 1)
Next
i = i + 1
Loop
End Sub