|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
|||||||||||
Тормоза в Excel03.11.2010, 12:22. Показов 1573. Ответов 10
Метки нет (Все метки)
VB пишет в ячейку Excel намного медленнее, чем VBA. Не поленился, прогнал один и тот же код сначала в VB, потом в VBA. Почти в 8 раз медленнее! Может, я что-то не то делаю ?
VBA:
Visual Basic:
Вопрос важен, т.к. приходится генерить отчеты из оракловой базы, и при работе в VB ощутимо всё тормозит.
0
|
|||||||||||
| 03.11.2010, 12:22 | |
|
Ответы с готовыми решениями:
10
Тормоза в Excel при открытии и закрытии одного файла с программой на VBA Word automation + Windows server 2008 R2 = тормоза(очень сильные тормоза) Тормоза с Windows XP |
|
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
|
||||||
| 03.11.2010, 12:45 | ||||||
|
А ты чего хотел? Ты ведь из VB создаешь объект и обмениваешся с ним через внешний драйвер, а в VBA напрямую. НО в твоем случае можно немного сократить время выполнения, засеть все переменные вплоть до листа, чтобы каждый проход прога не обращалась к свойствам объекта.
0
|
||||||
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
|||||||||||
| 03.11.2010, 13:02 | |||||||||||
|
И еще вот так добавь:
А все остальное XPRaptor тебе уже написал ![]() Еще можно заранее объект Excel открыть в начале работы проги, если ты конечно экспорт многократно используешь. И переменные не забудь явно объявлять:
0
|
|||||||||||
|
Comanche
|
|
| 03.11.2010, 14:08 | |
|
Ну и вместо 'next i' использовать просто 'next', коль пошла такая пьянка...
Ну а вообще-то - если условия задачи позволяют - лучше написАть всё в виде VBA-макроса (в книге или XLA-надстройке) и из VB его запускать (AppExcel.Run <...>). |
|
|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
|
| 03.11.2010, 14:53 [ТС] | |
|
Всё сделал, получил 308 секунд. Лучше, но несравнимо с VBA.
Попробую XLA-надстройку.
0
|
|
|
Comanche
|
||||||
| 03.11.2010, 15:53 | ||||||
|
Можно, кстати, обойтись и без надстройки - создав из VB книгу и прописав в неё VBA-код 'на лету'. Для этого создай VB-проект, подключи к нему Microsoft Excel Object Library, а также библиотеку Microsoft VBA Extensibility. Затем создай в проекте вот такую процедуру:
|
||||||
|
Comanche
|
|
| 03.11.2010, 15:57 | |
|
PS: можно добавлять код не из файла, а из строки (AddFromString) - в таком случае удобно эту строку читать из файла ресурсов; это позволит в итоге иметь только один EXE-шник и не таскать с ним TXT-файл с кодом VBA-макроса. Кстати, этот механизм иногда используется некоторыми вирусописателями, туды их растуды.
|
|
|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
|
| 07.11.2010, 18:57 [ТС] | |
|
заработало ! Спасибо большое !
0
|
|
|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
|
| 07.11.2010, 19:02 [ТС] | |
|
Кстати, долго промучался с тем, что не находился макрос в только что созданной книге. Практически случайно обнаружил, что ошибка исчезает, если перед запуском макроса активировать книгу xls.Activate
0
|
|
|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
||||||
| 08.11.2010, 10:33 [ТС] | ||||||
|
Помогите еще одним советом.
Процедура, которая лежит в файле с ресурсами:
0
|
||||||
|
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
|
|
| 08.11.2010, 12:08 [ТС] | |
|
Всё, разобрался. Просто у листа была включена опция 'Вид->Разметка страницы', и он в цикле размечал его.
0
|
|
| 08.11.2010, 12:08 | |
|
Помогаю со студенческими работами здесь
11
Тормоза компьютера Тормоза в браузере Тормоза HDD Тормоза 4790K Тормоза из за вируса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|