Очень надо помочь, с мааленьким макросом. Нужно в заданом прайсе: 1. Удалить позиции (строки) которых нет в ячейках в колонке 5 2. Если есть дубли позиций по колонке 5 удалить строки предварительно вывести их в отдельный список (лист)
Очень надо помочь, с мааленьким макросом. Нужно в заданом прайсе: 1. Удалить позиции (строки) которых нет в ячейках в колонке 5 2. Если есть дубли позиций по колонке 5 удалить строки предварительно вывести их в отдельный список (лист)wwizard
1. Удалить позиции (строки) которых нет в ячейках в колонке 5
Решается сортировкой и "ручным" удалением. Если не подходит - [vba]
Код
Sub del0() For Each cell In Cells(1, 5).Resize(ActiveSheet.Cells(ActiveSheet.Rows.Count, 5).End(xlUp).Row, 1) If cell.Value = "" Then Rows(cell.Row).Delete Shift:=xlUp End If Next End Sub
[/vba]
Цитата
2. Если есть дубли позиций по колонке 5 удалить строки предварительно вывести их в отдельный список (лист)
Вкладка "данные" - "Удалить дубликаты"
Цитата
1. Удалить позиции (строки) которых нет в ячейках в колонке 5
Решается сортировкой и "ручным" удалением. Если не подходит - [vba]
Код
Sub del0() For Each cell In Cells(1, 5).Resize(ActiveSheet.Cells(ActiveSheet.Rows.Count, 5).End(xlUp).Row, 1) If cell.Value = "" Then Rows(cell.Row).Delete Shift:=xlUp End If Next End Sub
[/vba]
Цитата
2. Если есть дубли позиций по колонке 5 удалить строки предварительно вывести их в отдельный список (лист)
Код предложенный SkyPro не будет корректно работать в случаях, когда две соседние строки не содержат данных в 5 колонке. Макрос удалит первую строку с пустой ячейкой (следующая строка с пустой ячейкой займёт место уже обработанной строки) и продолжит работу со следующей строки. После удаления строки необходимо повторно проверить наличие данных в текущей строке.
Код предложенный SkyPro не будет корректно работать в случаях, когда две соседние строки не содержат данных в 5 колонке. Макрос удалит первую строку с пустой ячейкой (следующая строка с пустой ячейкой займёт место уже обработанной строки) и продолжит работу со следующей строки. После удаления строки необходимо повторно проверить наличие данных в текущей строке.vodomut
Код предложенный SkyPro не будет корректно работать
Вы правы. Спасибо за замечание. Правильно будет вот так: [vba]
Код
Sub del0() Dim rRange As Range, rCell As Range For Each rCell In Cells(1, 5).Resize(ActiveSheet.UsedRange.Rows.Count, 1) If rCell.Value = "" Then If rRange Is Nothing Then Set rRange = rCell Else Set rRange = Union(rRange, rCell) End If End If Next rRange.EntireRow.Delete End Sub
Код предложенный SkyPro не будет корректно работать
Вы правы. Спасибо за замечание. Правильно будет вот так: [vba]
Код
Sub del0() Dim rRange As Range, rCell As Range For Each rCell In Cells(1, 5).Resize(ActiveSheet.UsedRange.Rows.Count, 1) If rCell.Value = "" Then If rRange Is Nothing Then Set rRange = rCell Else Set rRange = Union(rRange, rCell) End If End If Next rRange.EntireRow.Delete End Sub