1) i - счетчик порядкового номера строки на листе, на который осуществляется перенос
2) строка считается пустой если пустое значение вот тут Cells(i, "C") = .Cells(j, "K")
3) Do - поскольку, как я упомянул, на одном листе может быть несколько групп строк и мы по определенному условию перемещаемся на эту пустую группу и первоначальная задача - опеределить является ли первая строка пустой, и только после этого начинать копирование
Код |
---|
Set FoundCell = .Columns(1).Find("условие:", , xlValues, xlWhole)
If Not FoundCell Is Nothing Then FAdr = FoundCell.Address
n = FoundCell.Row + 3 'начальная строка в таблице
Do
Cells(i, "B") = FoundCell.Offset(, 1)
For j = n To .Cells(n - 1, "K").End(xlDown).Row
Cells(i, "C") = .Cells(j, "K")
Cells(i, "D") = .Cells(j, "J")
Cells(i, "F") = .Cells(j, "L")
Cells(i, "G") = .Cells(j, "M")
i = i + 1
Next
Set FoundCell = .Columns(1).FindNext(FoundCell)
n = FoundCell.Row + 3
Loop While FoundCell.Address <> FAdr
End If
End With |