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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2012, 14:38   #1
Zorg
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 41
По умолчанию Распознание регистра в надписи

Коллеги, помогите пожалуйста!

Есть макрос, который преобразовывает список с дублекатами (Список 1) наименований в список с уникальными наименованиями (Список 2) через массив.
Проблема в том, что при попадании наименований в списке 1 таких наименований, как "ООО ЛЮТИК" и "ООО Лютик", (которые, по сути, разные) он делает из них одно (первое по счету, "ООО ЛЮТИК").

Как бы сделать так, чтобы они их разделял?

Sub Выгрузка()

Dim i As Long, j As Long, x As New Collection, a, b()
Sheets("Буфер обмена").Activate: Range([E2], Cells(Rows.Count, "I")).ClearContents
With Sheets("Базовый массив")
a = .Range(.[B8], .Cells(Rows.Count, "B").End(xlUp)).Value
End With
ReDim b(1 To UBound(a, 1), 1 To 1): j = 1
For i = 1 To UBound(a, 1)
If a(i, 1) <> "" Then
On Error Resume Next: x.Add a(i, 1), CStr(a(i, 1))
If Err = 0 Then
b(j, 1) = a(i, 1): j = j + 1
Else: On Error GoTo 0
End If
End If
Next
Range([E2], Cells(UBound(b, 1) + 1, "E")).Value = b
End Sub

Помогите, плиз!
Zorg вне форума Ответить с цитированием
Старый 01.08.2012, 20:20   #2
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

думаю, для используемого объекта Collection это невозможно.
по крайней мере, Optional Compare Binary ему по барабану.
переписывайте макрос с использованием объекта Dictionary.
у него есть свойство Compare
ikki_pf вне форума Ответить с цитированием
Старый 01.08.2012, 20:30   #3
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Zorg, файл с примером
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 01.08.2012, 20:58   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> таких наименований, как "ООО ЛЮТИК" и "ООО Лютик", (которые, по сути, разные)

Да? Попробуйте-ка одновременно зарегистрировать ООО "ЛЮТИК" и ООО "Лютик".
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 01.08.2012, 22:54   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Ромашки спрятались... найти бы лютик!

Цитата:
Сообщение от Zorg Посмотреть сообщение
"ООО ЛЮТИК" и "ООО Лютик"
До кучи:
  1. ООО ЛюТиК
  2. ООО ЛюТИК
  3. ...
  4. ООО«Лютик» (без пробелов)
  5. ООО“Лютик”
  6. ООО»Лютик» (часто встречал)
  7. ООО„ЛютиК”
  8. ...
  9. ООО «ЛютиК» (с одним и более пробелами)
  10. ...

Бинарное сравнение тут безусловно буксует! Остаётся ручная работа.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 02.08.2012, 12:41   #6
Zorg
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 41
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
Zorg, файл с примером
Nerv, вот файл примера.

Казанский, понимаю, что ситуация глупая с точки зрения учета клиентов, юр лиц и т.д..
Глупость ситуации идет от того, что код ТТ отсутствует, есть только название, созданное в учетке какими-то гениями (данные внешние, такие получаем, повлиять не можем). Названия распознаются, вносятся в справочники и им присваивается код. Беда в том, что распознаются некорректно.

ikki_pf
Не поделитесь примером, как бы это реализовать?
Вложения
Тип файла: rar Модуль.rar (25.6 Кб, 8 просмотров)
Zorg вне форума Ответить с цитированием
Старый 02.08.2012, 18:47   #7
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

Цитата:
Сообщение от Zorg Посмотреть сообщение
Не поделитесь примером, как бы это реализовать?
в сети - масса примеров.
ключевая фраза для поиска: "vba scripting.dictionary"
ikki_pf вне форума Ответить с цитированием
Старый 07.08.2012, 12:42   #8
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

еще актуально?
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознание капчи Arsenx777 Общие вопросы Delphi 36 26.01.2014 21:20
Распознание лица harkonen C# (си шарп) 0 27.02.2012 15:07
Преобразовать все буквы нижнего регистра в буквы верхнего регистра druger Помощь студентам 5 18.09.2011 17:27
Распознание изображений kroŧ PHP 3 20.05.2011 19:00
Распознание текста DOLBY Общие вопросы Delphi 13 14.02.2008 13:31