JayBhagavan, прочитал, буду стараться внедрять)
В общем, оказалось, что макрос от Ігор Гончаренко работает не совсем верно. При применении его в исходном файле получилась следующая ситуация:
Исходный файл состоит не только из одного этого листа, а из нескольких. Данные вводятся на лист2 в диапазон A6:F505, как я показал в примере. А на остальных листах в ячейках возвращаются данные, в зависимости от определенного условия через функции ИНДЕКС и ПОИСКПОЗ. То есть, на остальных листах стоят ссылки на этот диапазон. И при применении макроса от Ігор Гончаренко, ссылки портятся и приобретают вид не $A$6:$F$505, а #ССЫЛКА, соответственно остальные листы теряют свою функциональность...
При применении макроса от Юрий М такой проблемы нет, но этот макрос не работает на последнюю заполненную строку диапазона. То есть, например, мы скопировали данные на первые 6 строк, из любой ячейки 6-ой строки мы удаляем значение, применяем макрос и он эту строку оставляет (а должен очищать). Поэтому попрошу добрых людей допилить вот этот макрос таким образом, чтобы он работал и на последнюю строку тоже.
Код |
---|
Sub Macro1()
Dim LastRow As Long, i As Long, Rng As Range
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Rng = Range(Cells(LastRow + 1, 1), Cells(LastRow + 1, 6))
For i = LastRow To 6 Step -1
If Application.WorksheetFunction.CountBlank(Range(Cells(i, 1), Cells(i, 6))) > 0 Then
Range(Cells(LastRow, 1), Cells(i + 1, 6)).Cut Cells(i, 1)
cnt = cnt + 1
End If
Next
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set SourceRange = Range(Cells(LastRow, 1), Cells(LastRow, 6))
Set fillRange = Range(Cells(LastRow, 1), Cells(LastRow + cnt, 6))
SourceRange.AutoFill Destination:=fillRange, Type:=xlFillFormats
End Sub |
P.S. надо было в примере какие-нибудь связи между листами изобразить, а то подумал, что это не так уж важно, а оказалось в итоге, что сам запутался и других запутал)