Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите исправить ошибки. Нужно извлечь уникальны Добавлено: 15.10.08 14:31  

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

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 15.10.08 15:28
Скачал твои файлы. Долго смотреть и разбираться с твоим кодом лень. Два простых способа на вскидку для получения уникального списка с уникальным индексом.
1. Отсортировать, а затем избавиться от повторений.
2. В один проход пройтись по списку-источнику, на каждом шаге во вложенным циклом проверяя в списке-получателе наличие текущего элемента. Если нет, то добавляем элемент, в противном случае берем следующий элемент из списка-источника.
Номер ответа: 2
Автор ответа:
 quest



Вопросов: 5
Ответов: 34
 Профиль | | #2 Добавлено: 15.10.08 15:36
Спасибо за помощь. 1й способ - оказался неудобным (когдато так уже делал)
2й - тоже думал по этому алгоритму - не получилось.
Номер ответа: 3
Автор ответа:
 quest



Вопросов: 5
Ответов: 34
 Профиль | | #3 Добавлено: 15.10.08 15:37
Кстати, по приведенному выше примеру - мало того, что он не работает, как надо, так еще и комп грузит ужасно.
Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 15.10.08 15:56
Если данных для обработки много, много проходов и слишком часто обращаемся через объекты - то всегда будет высокая загрузка процессора. Т.е. надо подумать над алгоритмом, заменить по возможности многократное чтение и запись значений ячеек. Ещё на время выполнения макроса временно отключают пересчет формул и обновление экрана. Пробуйте-пробуйте. Что-нибудь должно получиться. Хорошо или плохо, но оба алгоритма должны работать. А может появятся и другие варианты обхода..
Номер ответа: 5
Автор ответа:
 quest



Вопросов: 5
Ответов: 34
 Профиль | | #5 Добавлено: 15.10.08 16:13
~
Номер ответа: 6
Автор ответа:
 quest



Вопросов: 5
Ответов: 34
 Профиль | | #6 Добавлено: 16.10.08 14:51
Тема закрыта, вопросы решены, спасибо за внимание

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам