Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 12:54   #1
pringls
 
Регистрация: 28.10.2010
Сообщений: 5
Вопрос Сравнение двух диапазонов и удаление совпадений ПОСТРОЧНО (доработка)

Здравствуйте уважаемые форумчане, подскажите ОПТИМИЗАЦИЮ Макроса, для увеличения скорости его работы. Макрос, который бы сравнивал два диапазона данных (расположенных на соседних листах) и удалял строки из первого диапазона (листа) при выявлении совпадений со вторым диапазоном (листом) С УЧЕТОМ ТОГО, что кол-во ячеек ВСЕГДА РАЗНОЕ, как в первом диапазоне, так и во втором.
Вот примерно то, что нужно, только тут указывается ЖЕСТКИЙ ДИАПАЗОН.

Можете ли вы подсказать, как сделать «плавающий», ну например до первой пустой ячейки, или сначала пересчитать кол-во строк (ячеек) и выявить таким способом…..
А то в таблицах иногда бывает до 5 тыс. строк, а когда данными заполнено 1 тыс, то соответственно макрос работает в 5 раз дольше.


Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Для ускорения работы макроса обновление экрана отключается.
Application.ScreenUpdating = False

' Получение числа записей для поиска (список, из которого будут выполняться удаления).
iListCount = Sheets("НОВЫЙ").Range("A2:A300").Rows.Count

' Цикл по "главному" списку.
For Each x In Sheets("СТАРЫЙ").Range("B2:B300")
' Цикл по всем записям второго списка.
For iCtr = 1 To iListCount
' Сравнение следующей записи.
' Для выбора другого столбца замените 1 на номер столбца.
If x.Value = Sheets("НОВЫЙ").Cells(iCtr, 1).Value Then
' Если совпало, удалить строку.
Selection.EntireRow.Delete
' Увеличение счетчика строк на 1 для учета удаленной строки.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True

End Sub
Вложения
Тип файла: rar test_2.rar (31.7 Кб, 21 просмотров)
pringls вне форума Ответить с цитированием
Старый 26.01.2011, 14:29   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

На планете ответил.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.01.2011, 16:54   #3
pringls
 
Регистрация: 28.10.2010
Сообщений: 5
По умолчанию

СПАСИБО БОЛЬШОЕ!!!
pringls вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сравнение двух таблиц Iskin Microsoft Office Excel 3 08.12.2010 07:18
сравнение двух строк aza_kaz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 01.01.2010 23:40
Сравнение двух таблиц scaramangi Microsoft Office Excel 0 17.09.2009 17:15
сравнение двух баз. Layk Microsoft Office Access 2 04.06.2009 23:37
Нахождение совпадений в двух книгах Professor Hubert Microsoft Office Excel 5 25.07.2008 12:59