Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Выгрузка из файла с помощью макроса
 
Прикрепил файлы до 100 кб
Выгрузка из файла с помощью макроса
 
Здравствуйте. Есть 2 файла с идентичной структурой строк и столбцов. Один файл содержит макрос с кнопкой, по нажатию на которую выбирается второй файл (база данных) из которой подгружаются целиком те строки, 2й столбец (наименование) которых полностью совпадает с исходным файлом. Вставка строки происходит посредством полной замены одной строки на другую. Файлы-примеры во вложении.

Задача такая.
Нужно, чтобы при замене строки неизменным в исходном файле остовался столбец 3 (количество), т.к. в базе данных количество не указывается и важно его сохранить.

Заранее спасибо за помощь и прошу прощения за топорную формулировку.

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
Удаление строк по условию. Как ускорить макрос?
 
Есть еще вариант с автофильтром (пока без цветов, просто по точному значению "0").
Но он тоже с большим количеством строк очень медленно работает, около минуты ещет...:((
Код
Sub macro() 
  Rows("22:22").Select
  Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
   Range(Range("a21:F21"), ActiveCell.SpecialCells(xlLastCell)).AutoFilter
   Selection.AutoFilter field:=6, Criteria1:="=0,00"
   Range(Range("a21:F21"), ActiveCell.SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Application.ScreenUpdating = True
End Sub

Может кто-то может оптимизировать по скорости такую конструкцию??
(Пример в предыдущем сообщении)
Удаление строк по условию. Как ускорить макрос?
 
ANik, благодарю за участие и помощь, Ваш макрос быстрый и интересный. В действительности гораздо быстрее работает поиск и копирование, нежели поиск и удаление, это правда.
Но я так и не смог добиться того, чтобы все приведенные примеры не изменяли структуру документа после копирования, для меня это очень важно, т.к. документ является формой отчетности и должен остаться без изменений. Я приложил файл с точной структурой этого документа, а не как раньше (похожий пример) и перечислил в нем все 3 варианта работы макросов из этой темы. В примере правда мало строк, чтобы уложиться в размер файла, но надо понимать, что их 2500++ шт.
В первом варианте (Voh), наверно нельзя загнать все в массив, т.к. придется менять весь код.., а остальные варианты сильно форматируют документ..(
Изменено: Voh - 19.02.2013 14:28:49
Удаление строк по условию. Как ускорить макрос?
 
Цитата
Казанский пишет:
надо не удалять ненужные строки, а переносить на новый лист нужные
Это отличная идея, думаю впоследствии так и надо будет сделать, т.к. это проще и безопаснее.
Но эти таблицы с данными содержат большое количество всякой ерунды: группировку диапазонов, макросы, формулы в ячейках, заданные печатные области, ячейкам присвоены формулы и условное форматирование, разные стили текстов, цвета и т.д. Тогда придется переносить с учетом всего этого, т.е. создавать идентичную копию с точки зрения всего перечисленного...Скорей всего это будет сложнее, чем просто удалить все ненужное..
Удаление строк по условию. Как ускорить макрос?
 
To "Казанский":
Извините, но очень медленно работает, не подойдет, к сожалению.
Удаление строк по условию. Как ускорить макрос?
 
nilem, спасибо большое за макрос, разобрался, вроде удаляет теперь то, что нужно. Очень жаль, что он очень сильно редактирует лист: разъединяет ячейки, сбивает их границы..( Подумаю, как с этим справиться.
Удаление строк по условию. Как ускорить макрос?
 
Скорость 3-го макроса подходящая, только вот никак не получается его заставить удалять только строки, удовлетворяющие условию (с заданным цветом в 6-м столбце или с "0" в этом же столбще, как в моем примере). Возможно это потому, что я не до конца понимаю как он работает:(
Удаление строк по условию. Как ускорить макрос?
 
Вот.
Только 2,5 тыс строк не помещается по размеру сюда..Пришлось подсократить.
Удаление строк по условию. Как ускорить макрос?
 
Пока никак не получается реализовать Вашу идею в моем макросе:( Нельзя ли показать на моем варианте, как это работает?
Удаление строк по условию. Как ускорить макрос?
 
Вы правы ColorIndex, просто не кооректно скопировал. Но скорость выполнения от этого не меняется..)
Удаление строк по условию. Как ускорить макрос?
 
В листе около 2,5 тыс. строк, можно ли ускорить этот макрос, ато он ищет строки с заданными условиями около 10 минут или вообще виснет комп..?(
Код
Sub DeleteRows()
LastRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For row = LastRow To 1 Step -1
On Error Resume Next
if ActiveSheet.Cells(row, 6).Interior.Color = 3 Then ActiveSheet.Rows(row).Delete
If Cells(row, 6).Value = "0" Then ActiveSheet.Rows(row).Delete
Next row
Application.ScreenUpdating = True
ActiveSheet.Calculate
End Sub
Страницы: 1
Наверх