Помогите исправить ошибки. Нужно извлечь уникальные id (попытка сделать через масивы)
Если кому не лень, то пожалуйста помогите.
То, с чем проблемы - здесь: http://garden.gov.ua/failo/bd.rar
В архиве 2 папки, они у меня лежат на С. В папке хлс/ - примеры файлов
на обработку. (это геоботаника - выходим на полянку, смотрим растения -
записываем их код, бал - номер этого описания записываем через "-", идем
на следующую полянку...). Итак, по примерам - 15.txt - это исходник,
открываю екселем - получается то, что в 15.xls - в идеале, его бы и
обрабатывать, но на всякий случай упростил его до того, что в файле
16.xls - отсюда надо выбрать все уникальные id и по этим id выбрать из
базы (екселевская таблица, находится в папке С:/bd/bd.xls) расшифровку).
В перспективе база будет расширятся и вдоль и вширь, поэтому жестко к
границам привязываться нельзя. А после всего мне по каждому столбцу еще
и статистику пощитать нужно - сколь% деревья, однолетники....но это уже
следующий нерешенный этап. В папке bd/ файл run.xls - в нем этот макрос
и записан - модуль 2
Отдельно код модуля приводить думаю нет смысла - слишком абстрактно.
Скачал твои файлы. Долго смотреть и разбираться с твоим кодом лень. Два простых способа на вскидку для получения уникального списка с уникальным индексом.
1. Отсортировать, а затем избавиться от повторений.
2. В один проход пройтись по списку-источнику, на каждом шаге во вложенным циклом проверяя в списке-получателе наличие текущего элемента. Если нет, то добавляем элемент, в противном случае берем следующий элемент из списка-источника.
Если данных для обработки много, много проходов и слишком часто обращаемся через объекты - то всегда будет высокая загрузка процессора. Т.е. надо подумать над алгоритмом, заменить по возможности многократное чтение и запись значений ячеек. Ещё на время выполнения макроса временно отключают пересчет формул и обновление экрана. Пробуйте-пробуйте. Что-нибудь должно получиться. Хорошо или плохо, но оба алгоритма должны работать. А может появятся и другие варианты обхода..