Проверка значений в Excel на уникальность.

Программирование на Visual Basic for Applications
jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Проверка значений в Excel на уникальность.

Сообщение jetcom » 20.03.2003 (Чт) 13:52

Привет всем!
Кроме как перебором по строкам\столбцам и потом при помощи Find искать себе подобных, больше ничего на ум чего-то не лезет...
Мож. кто подскажет что-нить более быстрое и интересное?
Например, For each никак нельзя тут применить?
Или еще как-нибудь КРАСИВО!!! :roll:
Всё сбудется!!!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.03.2003 (Чт) 14:13

Можно поджклчаться к XLS через ADO и SQL запросом делать выборку а потом анализировать :D Это бесспорнобудет красиво, но вот насчет того что быстрее и правильнее, не думаю. А так предлоденные тобой решения по моему исчерпывают все цивильные возможности.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 20.03.2003 (Чт) 15:57

Мы это по мойму уже обсуждали на другом форуме. Each можно, например поиск во всем столбце D:
For Each r In Range("d:d")
If r.Text = "Что ищим" Then
MsgBox r.Address
Exit For
End If
Next r

Будет быстрее, чем перебирать индексы строк, но медленей чем функция Find в VBA

dummy
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 27.12.2002 (Пт) 16:24

Сообщение dummy » 24.03.2003 (Пн) 15:02

Можно использовать функцию листа countif, по-русски счетесли.
Допустим, список находится в $A$1:$A$20, тогда если счетесли($A$1:$A$20,A1)=1, то значение ячейки A1 встречается в списке 1 раз, идея понятна?
Можно завести проверку уникальности без макросов, c использованием проверки данных, это в меню данные/проверка данных, тип - другой, формула - "=счетесли($A$1:$A$20,A1)<2".

jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Сообщение jetcom » 27.03.2003 (Чт) 3:45

Пару-тройку дней сидел без инета, только дорвался, спешу всех поблагодарить за ответы! Но, насчет идей dummy, это, скорее всего не подойдет, т.к. помимо подсчета этих повторений, необходимо знать адреса этих негодников!!! :wink: (чтобы сделать их тоже уникальными). Смысл в том, чтобы присвоить код товару, и при случайном совпадении оного, сразу это выявить и исправить... :roll:
Всё сбудется!!!

dummy
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 27.12.2002 (Пт) 16:24

Сообщение dummy » 27.03.2003 (Чт) 11:06

Раз тебе нужны еще и адреса ячеек с такими же значениями, то ничего быстрее и проще метода cells.find ты не найдешь IMHO.


Вернуться в VBA

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

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

    TopList