Добрый день. Есть ли возможность вставить пустые строки в количестве соответствующем значению ячейки. В приложенном файле в левом столбце то, что имеем. В правом - желаемый результат.
Добрый день. Есть ли возможность вставить пустые строки в количестве соответствующем значению ячейки. В приложенном файле в левом столбце то, что имеем. В правом - желаемый результат.TZFLeader
Sub TZFLeader() Dim i With Range("A1").CurrentRegion For i = .Cells.Count - 1 To 1 Step -1 If .Cells(i, 1) Then Rows(i + 1 & ":" & i + .Cells(i, 1)).Insert End If Next End With End Sub
[/vba]или, как вариант [vba]
Код
Sub TZFLeader() Dim i With Range("A1").CurrentRegion For i = .Cells.Count - 1 To 1 Step -1 If .Cells(i, 1) Then .Rows(i + 1 & ":" & i + .Cells(i, 1)).Insert Shift:=xlDown End If Next End With End Sub
[/vba]
В модуль листа [vba]
Код
Sub TZFLeader() Dim i With Range("A1").CurrentRegion For i = .Cells.Count - 1 To 1 Step -1 If .Cells(i, 1) Then Rows(i + 1 & ":" & i + .Cells(i, 1)).Insert End If Next End With End Sub
[/vba]или, как вариант [vba]
Код
Sub TZFLeader() Dim i With Range("A1").CurrentRegion For i = .Cells.Count - 1 To 1 Step -1 If .Cells(i, 1) Then .Rows(i + 1 & ":" & i + .Cells(i, 1)).Insert Shift:=xlDown End If Next End With End Sub
Если Вам просто нужно разнести данные, то можно формулой (файл _1) Если реально повставлять строки, то такой вариант макроса (файл _2) [vba]
Код
Sub tt() r0_ = 1 r1_ = Range("A" & Rows.Count).End(xlUp).Row For i = r1_ To r0_ Step -1 If Range("A" & i) Then Rows(i + 1 & ":" & i + Range("A" & i)).Insert Next i End Sub
[/vba]
Если Вам просто нужно разнести данные, то можно формулой (файл _1) Если реально повставлять строки, то такой вариант макроса (файл _2) [vba]
Код
Sub tt() r0_ = 1 r1_ = Range("A" & Rows.Count).End(xlUp).Row For i = r1_ To r0_ Step -1 If Range("A" & i) Then Rows(i + 1 & ":" & i + Range("A" & i)).Insert Next i End Sub