尝试这个 -
[编辑]
Sub CopyNames()
Dim rngCopy As Range, rngTemp As Range, rngTarget As Range
Dim intMultiple As Integer, i As Integer, intRow As Integer
Set rngCopy = Sheet1.Range("A2", Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp)) 'Set range including names
Set rngTarget = Sheet2.Cells(Sheet2.Rows.Count, 2).End(xlUp).Offset(1, 0) 'Set target range to next available row in Sheet2
For intRow = rngCopy.Rows.Count To 1 Step -1
Set rngTemp = rngCopy.Cells(intRow)
intMultiple = rngTemp.Offset(0, 2) 'Find how many times to copy the name
For i = 1 To intMultiple
rngTarget.Value = rngTemp.Value 'Copy name
rngTarget.Next.Value = rngTemp.Next.Value 'Copy ID
Set rngTarget = rngTarget.Offset(1, 0) 'Move target range to next row
Next
Next
End Sub