Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Сравнение данных в массивах

Автор Talisman314, 01.11.2017, 19:20:37

« назад - далее »

Talisman314

Добрый день, уважаемые знатоки!

Прилагаю к сообщению файл. который мне уже все нервы выел!
Задача:
Есть три списка значений:
На листе "оглавление"
На листе "оборудование"
На листе "APPLICATION" - единственный создается динамически самим макросом, на основе функции "ПРОСМОТР"

Подбираю в массив список На листе "APPLICATION", и начинаю по одному элементу искать в остальных двух списках, подобранных в массив.

И тут начинается магия - некоторые из элементов замечательно находятся, некоторые - не находятся (это можно глянуть в окошке Locals Window)

Пробовал циклами и через МАТЧ
Пробовал менять и чистить форматы,
Не выходит каменный цветок.

Прошу помощи!
Перерыл весь форум, и не только этот!))

kuklp

Кросс:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=97675&TITLE_SEO=97675-sravnenie-dannykh-v-massivakh
kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728

Talisman314

#2
Вы правы, не указал сразу кросс-темы на других форумах:
http://www.cyberforum.ru/vba/thread2114787.html#post11676031
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=97675&TITLE_SEO=97675-sravnenie-dannykh-v-massivakh#postform

Кроме того, в приведенном примере забыл указать функцию опустошения массива, которая осталась в другом модуле.
Новый файл прилагаю:

Talisman314

РЕШЕНИЕ:


Цитировать
правильное решение преобразовать до сравнения в Decimal
Децимал у меня не сработало, ЗАТО

Цитировать
сравнивать эти числа как строку, тогда всё ОК
Преобразование всех элементов массивов в строковые сработало замечательно!
На будущее надо запомнить, что cstr(11) < cstr(9)

Коллеги, вы спасли огромное количество человеко-часов!
Спасибо!

Яндекс.Метрика Рейтинг@Mail.ru