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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 05:55   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 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.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.04.2009, 12:52   #12
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

В живом файле несколько иначе столбцы соседние H i I и значения в них распологаються наоборот чем в примере H - это код, I - это цена. Сейчас попробую разобраться.

Изменил значение на 2, в массиве, что то было, по крайней мере, 1-е значение, запустил выполняться и повис. Как посмотреть что в массиве? и как прерывать выполнение, если вдруг процесс зациклился?

P.S. Да значения присваиваються наоборот, пытаюсь разобраться.

Последний раз редактировалось Vik-00; 24.04.2009 в 13:39.
Vik-00 вне форума Ответить с цитированием
Старый 24.04.2009, 16:06   #13
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Все я разобралься перевернул, проверил работает. Старый макрос (мною написанный) максимално делал это за 30 минут (в одном фаиле 3000 записей в другом 4000). Этот уложился за 8 почти в 4 раза. Если учитывать что всего у меня 4 таких процедуры, то выигрыш по времени приличный. Спасибо, готов проставиться.

А вообще в моем макросе есть еще одно место которое можно ускорить, но это чуть позже
Vik-00 вне форума Ответить с цитированием
Старый 24.04.2009, 16:15   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

У Вас что, выполнение макроса занимает 8 минут?
Файлы-то у вас совсем небольшие... 4000 строк - это совсем немного.
За это время вполне реально обработать сотню-другую таких файлов.

Цитата:
А вообще в моем макросе есть еще одно место которое можно ускорить
Похоже, что не одно...
Выложите код своего макроса (лучше вместе с файлом из 4000 строк)
Посмотрим, что можно сделать.
EducatedFool вне форума Ответить с цитированием
Старый 24.04.2009, 16:38   #15
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Я подготовлю, это коммерческая информация, поэтому в открытую выложить не могу.
Vik-00 вне форума Ответить с цитированием
Старый 24.04.2009, 20:00   #16
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

А не кинети ли вы мне в личку ваш емайл, я отправлю вам файлы и макрос. Пути переписал, но на скорую руку и не проверил.

Последний раз редактировалось Vik-00; 25.04.2009 в 12:28.
Vik-00 вне форума Ответить с цитированием
Старый 27.04.2009, 05:33   #17
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Мой e-mail есть в профиле. Если вопрос выпаолнения процедуры актуален - давайте Ваши большие файлы. Разберемся. Конфиденциальность Вашей информации гарантирую. EducatedFool абсолютно прав. На правильную обработку файла нужно максимум несколько секунд.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.04.2009, 11:12   #18
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Мой e-mail есть в профиле. Если вопрос выпаолнения процедуры актуален - давайте Ваши большие файлы. Разберемся. Конфиденциальность Вашей информации гарантирую. EducatedFool абсолютно прав. На правильную обработку файла нужно максимум несколько секунд.
Добрый день

Извиняюсь, или я пользоваться форумом не умею или что то не так. Я не могу там положить файлы, то ли это там не предусмотренно то ли еще что.
Vik-00 вне форума Ответить с цитированием
Старый 27.04.2009, 11:19   #19
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Либо пришлите файл по адресу SAS888@mail.ru, либо "закиньте" в любой файлообменник, например, в Этот, а ссылку и пароль на скачивание сообщите мне в "личку".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.04.2009, 12:06   #20
Vik-00
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 20
По умолчанию

Отправил по эмайлу.
Vik-00 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Представить математическую запись (+описание решения) фрагмента программы и вычислить значение переменной (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