Sub MakeNewTable()
Dim rCell As Range
Dim i As Long
Dim rNext As Range
'loop through the cells in column A of the source sheet
For Each rCell In Sheet1.Range("A1:A3")
'loop as many times as the value in column C of the source sheet
For i = 1 To rCell.Offset(0, 2).Value
'find the next empty cell to write to in the dest sheet
Set rNext = Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Offset(1, 0)
'copy A and B from source to the dest sheet
rCell.Resize(1, 2).Copy rNext.Resize(1, 2)
Next i
Next rCell
End Sub
Вам необходимо изменить ссылки на листы в соответствии с вашей ситуацией. Ссылки на листы, используемые выше, являются ссылками на кодовое имя. Если вы откроете Project Explorer в VBE (Control + R) и развернете свою проекцию, вы увидите объекты типа «Sheet1 (MyTablName)». Часть Sheet1 называется Codename и не изменяется при переименовании листа. Если вы хотите использовать имена вкладок, вы должны использовать что-то вроде
ThisWorkbook.Worksheets("MyTabName").Range("A1:A3")
Удачи.