! Сравнить два столбца в Excel'e

Программирование на Visual Basic for Applications
GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

! Сравнить два столбца в Excel'e

Сообщение GAL » 05.01.2005 (Ср) 10:56

Привет! Люди, помогите кто может, ПОЖАЛУЙСТА!
Есть два листа в которых два списка - нужно сравнить столбцы в этих списках между собой. В одном столбце более 900 строк, а в другом более 600. В первом списке присутствуют эти 600 записей и нужно сравнить с 900 и при совпадении удалить, чтобы остались те 300 записей. Вроде бы понятно описал задачу. :roll:
Помогите, плиз! :!: :!: :!:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 11:20

Один столбец в каждом списке?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2005 (Ср) 11:48

В списке №1 есть один столбец с 900 записаными ячейками, в списке №2 один столбец с 600 записаными ячейками и их нужно сравнить и в списке №1 удалить все совпадающие со списка №2 ячейки, чтобы остались те 300, которых нет в списке №2
Мне советовали выкрасить шкуру. Нелепый совет. Крашеный ли волк, стриженый ли волк, он все равно не похож на пуделя. (c) М. А. Булгаков

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 11:55

sub deleteduplicates(byval from as range, byval r as range)
dim c as range, f as range

for each c in r.columns(1).cells
set f=from.find(c.value,,xlvalues, xlwhole)
if not f is nothing then f.delete xlshiftup
next
end sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2005 (Ср) 12:34

GSerg спасибо. Но я не понял как этот код использовать. В модуль поставил - не работает. Поясни.
Мне советовали выкрасить шкуру. Нелепый совет. Крашеный ли волк, стриженый ли волк, он все равно не похож на пуделя. (c) М. А. Булгаков

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 12:35

Ну, например, предварительно сохранившись, можно вызвать

deleteduplicates range("Лист1!A1:A900"), range("Лист2!A1:A600")
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2005 (Ср) 12:50

GSerg, поясни как под кнопку это подвести или под макрос. Я что-то совсем не въезжаю. Пожалуйста.
Мне советовали выкрасить шкуру. Нелепый совет. Крашеный ли волк, стриженый ли волк, он все равно не похож на пуделя. (c) М. А. Булгаков

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 12:58

sub test
deleteduplicates range("Лист1!A1:A900"), range("Лист2!A1:A600")
end sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2005 (Ср) 16:50

GSerg! Большое человеческое спасибо! Все работает и код короткий. Желаю тебе удачи в Новом Году и с Рождеством!
Мне советовали выкрасить шкуру. Нелепый совет. Крашеный ли волк, стриженый ли волк, он все равно не похож на пуделя. (c) М. А. Булгаков


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

    TopList