|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.04.2009, 05:55 | #11 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Строка a = .Range(.[B2], .Cells(i, "F")).Value означает: создать массив a из значений диапазона от "B2" до ячейки строки i столбца "F". В результате получим двумерный массив размерностью (i-1) X 5.
2. "a-subscript out of range" скорее всего, означает, что элемент массива a(j, 5) "не в диапазоне", т.е. либо, по какой-то причине, вторая размерность оказалась меньше, чем 5, либо переменная j превышает 1-ю размерность (но т.к. j - это счетчик цикла по элементам 1-й размерности массива, то это исключено). Проверьте, правильно ли Вы задаете массив a (должно быть 5 столбцов; в примере, это с "B" по "F" включительно). В принципе, можно сэкономить на том, что нам не нужны все столбцы "B:F". Можно вместо одного массива в 5 столбцов, создать два массива по 1 столбцу. "B" и "F". Но, быстрее от этого макрос работать не будет. Короче, проверьте как формируется массив a.
Чем шире угол зрения, тем он тупее.
|
24.04.2009, 12:52 | #12 |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
В живом файле несколько иначе столбцы соседние H i I и значения в них распологаються наоборот чем в примере H - это код, I - это цена. Сейчас попробую разобраться.
Изменил значение на 2, в массиве, что то было, по крайней мере, 1-е значение, запустил выполняться и повис. Как посмотреть что в массиве? и как прерывать выполнение, если вдруг процесс зациклился? P.S. Да значения присваиваються наоборот, пытаюсь разобраться. Последний раз редактировалось Vik-00; 24.04.2009 в 13:39. |
24.04.2009, 16:06 | #13 |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
Все я разобралься перевернул, проверил работает. Старый макрос (мною написанный) максимално делал это за 30 минут (в одном фаиле 3000 записей в другом 4000). Этот уложился за 8 почти в 4 раза. Если учитывать что всего у меня 4 таких процедуры, то выигрыш по времени приличный. Спасибо, готов проставиться.
А вообще в моем макросе есть еще одно место которое можно ускорить, но это чуть позже |
24.04.2009, 16:15 | #14 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
У Вас что, выполнение макроса занимает 8 минут?
Файлы-то у вас совсем небольшие... 4000 строк - это совсем немного. За это время вполне реально обработать сотню-другую таких файлов. Цитата:
Выложите код своего макроса (лучше вместе с файлом из 4000 строк) Посмотрим, что можно сделать. |
|
24.04.2009, 16:38 | #15 |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
Я подготовлю, это коммерческая информация, поэтому в открытую выложить не могу.
|
24.04.2009, 20:00 | #16 |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
А не кинети ли вы мне в личку ваш емайл, я отправлю вам файлы и макрос. Пути переписал, но на скорую руку и не проверил.
Последний раз редактировалось Vik-00; 25.04.2009 в 12:28. |
27.04.2009, 05:33 | #17 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Мой e-mail есть в профиле. Если вопрос выпаолнения процедуры актуален - давайте Ваши большие файлы. Разберемся. Конфиденциальность Вашей информации гарантирую. EducatedFool абсолютно прав. На правильную обработку файла нужно максимум несколько секунд.
Чем шире угол зрения, тем он тупее.
|
27.04.2009, 11:12 | #18 | |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
Цитата:
Извиняюсь, или я пользоваться форумом не умею или что то не так. Я не могу там положить файлы, то ли это там не предусмотренно то ли еще что. |
|
27.04.2009, 11:19 | #19 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Либо пришлите файл по адресу SAS888@mail.ru, либо "закиньте" в любой файлообменник, например, в Этот, а ссылку и пароль на скачивание сообщите мне в "личку".
Чем шире угол зрения, тем он тупее.
|
27.04.2009, 12:06 | #20 |
Пользователь
Регистрация: 15.04.2009
Сообщений: 20
|
Отправил по эмайлу.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Представить математическую запись (+описание решения) фрагмента программы и вычислить значение переменной | (Kate) | Помощь студентам | 7 | 18.10.2011 16:52 |
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент | LyaLya | Помощь студентам | 15 | 20.12.2009 14:12 |
Массивы С++ | БаунтЯ | Помощь студентам | 3 | 20.02.2009 21:11 |
Массивы | Баламут | Win Api | 9 | 12.01.2008 18:57 |