Excel - Попълва данните според променливата

Проблем

Искам да запълня лист Excel с променлив брой редове в съответствие с число, вмъкнато на фиксирана колона.

 колона ABCD r1 2009096 1001 19 5 r2 2009097 1002 12 2 r3 2009097 1003 36 6 r4 2009099 1004 10 3 r5 2009099 1005 11 3 r6 2009099 1006 12 2 r7 2009099 1007 13 4 r8 2009101 1008 25 5 

Съгласно номерата, вмъкнати в колона D, възнамерявам да получа следния резултат:

 колона ABC r1 2009096 1001 19 r2 2009096 1001 19 r3 2009096 1001 19 r4 2009096 1001 19 r5 2009097 1002 12 r8 2009097 1003 36 r9 2009097 1003 36 r12 2009097 r13 2009097 1003 36 

Решение

Ако приемем, че данните са в лист1, започващ от ред 1 (без заглавие).

Резултатът ще бъде показан в лист2.

Коригирайте имената на листите и първо направете резервно копие на файла, след това вижте дали този макрос дава желания резултат:

 Под-тест () Dim lRow, lRow2, x, y As Integer lRow = Листове ("лист1"). Диапазон ("E" & Rows.Count) .End (xlUp) .Row за всяка клетка В листа ("Sheet1") .Range ("E1: E" & lRow) x = cell.Value y = 0 Листове ("Sheet1") Изберете Range (Клетки (клетка.Row, "A"), Cells (клетка.Row, "D") Копирай lRow2 = Листове ("Лист2"). Обхват ("A" & Rows.Count) .End (xlUp) .Offset (1, 0) .Row Sheets ("Sheet2"). Диапазон ("A" & lRow2) .PasteSpecial y = y + 1 Loop До x = y Следваща клетка End Sub 

Благодарение на TrowaD за този съвет.

Предишна Статия Следваща Статия

Топ Съвети