Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Странное выполнение кода - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Странное выполнение кода
Lenokk2000 Дата: Воскресенье, 21.10.2012, 12:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 4 ±
Замечаний: 0% ±

Здравствуйте, уважаемые эксперты!
Есть программный код, объединяющий однотипные файлы отчетов, находящихся в папке запуска сводного файла. В этой же папке находится файл - шаблон (или отдельный или любой выбранный из отчетов, в представленном случае АБДДС.xlsb), с которого в своде выставляется число и размер листов, оформление и формулы. Впринципе, особенно после последней помощи на форуме, все работало. Однако, для рещения проблем с перекрестными ссылками листов друг на друга было реализовано удвоение циклов - 1) для сбора данных 2) для расставления формул. При открытии файла шаблона через Workbooks.Open - все было слегка медлено, а заменой на Get object - все стало в 10 раз быстрее! Но, вероятно замена была не достаточно корректная или грамотная.
а)Но код стал работать следующим образом: при запуске в своде с одинаковым количеством листов с шаблоном - 3 секунды и так сколько угодно раз, если поменять в своде количество листов - код сразу работает в 13 раз медленнее и после этого при последующих запусках уже при одинаковом колличестве листов код продолжает работать с такой-же скоростью.
б)И самое главное - если при открытом файле свода - открыть файл шаблона (АБДДС.xlsb) и в нем произвести изменения (например добавить число в незащищенную ячеку) и сохранить изменения. То при последущем запуске кода мы получаем ошибку: Run-time error '-2147467259 (80004005)':
Automation error
Unspecified error
после этого, при попытке открыть файл-шаблон появляется сообщение о "содержимое, которое не удалось прочитать" и "Восстановленные записи: Свойства вычислений из части /xl/workbook.bin (Книга)", дальше если сохранить изменения в файле-шаблоне, оказывается, что файл с таким именем уже существует и его надо перезаписать - что и делаю.
После этого при запуске кода - опять начинается его медленное исполнение. Но если закрыть файл свода и открыть его заново - код опять летает!
Подозреваю, что в коде напутал "методы и коллекции" - но разобраться без специалиста не по силу.
С уважением,
К сообщению приложен файл: 1668195.rar (99.6 Kb) · 4289807.xlsm (43.3 Kb)
 
Ответить
СообщениеЗдравствуйте, уважаемые эксперты!
Есть программный код, объединяющий однотипные файлы отчетов, находящихся в папке запуска сводного файла. В этой же папке находится файл - шаблон (или отдельный или любой выбранный из отчетов, в представленном случае АБДДС.xlsb), с которого в своде выставляется число и размер листов, оформление и формулы. Впринципе, особенно после последней помощи на форуме, все работало. Однако, для рещения проблем с перекрестными ссылками листов друг на друга было реализовано удвоение циклов - 1) для сбора данных 2) для расставления формул. При открытии файла шаблона через Workbooks.Open - все было слегка медлено, а заменой на Get object - все стало в 10 раз быстрее! Но, вероятно замена была не достаточно корректная или грамотная.
а)Но код стал работать следующим образом: при запуске в своде с одинаковым количеством листов с шаблоном - 3 секунды и так сколько угодно раз, если поменять в своде количество листов - код сразу работает в 13 раз медленнее и после этого при последующих запусках уже при одинаковом колличестве листов код продолжает работать с такой-же скоростью.
б)И самое главное - если при открытом файле свода - открыть файл шаблона (АБДДС.xlsb) и в нем произвести изменения (например добавить число в незащищенную ячеку) и сохранить изменения. То при последущем запуске кода мы получаем ошибку: Run-time error '-2147467259 (80004005)':
Automation error
Unspecified error
после этого, при попытке открыть файл-шаблон появляется сообщение о "содержимое, которое не удалось прочитать" и "Восстановленные записи: Свойства вычислений из части /xl/workbook.bin (Книга)", дальше если сохранить изменения в файле-шаблоне, оказывается, что файл с таким именем уже существует и его надо перезаписать - что и делаю.
После этого при запуске кода - опять начинается его медленное исполнение. Но если закрыть файл свода и открыть его заново - код опять летает!
Подозреваю, что в коде напутал "методы и коллекции" - но разобраться без специалиста не по силу.
С уважением,

Автор - Lenokk2000
Дата добавления - 21.10.2012 в 12:58
Lenokk2000 Дата: Воскресенье, 21.10.2012, 13:07 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 4 ±
Замечаний: 0% ±

небольшое дополнение:
Ошибка появляется на строке: Set d = GetObject("" & pthh & m) 'Run-time error '-2147467259 (80004005)':
'Automation error
'Unspecified error
С уважением,
 
Ответить
Сообщениенебольшое дополнение:
Ошибка появляется на строке: Set d = GetObject("" & pthh & m) 'Run-time error '-2147467259 (80004005)':
'Automation error
'Unspecified error
С уважением,

Автор - Lenokk2000
Дата добавления - 21.10.2012 в 13:07
ABC Дата: Воскресенье, 21.10.2012, 13:49 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
попробуйте пере сохранить АБДДС.xlsb на АБДДС.xlsm


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщениепопробуйте пере сохранить АБДДС.xlsb на АБДДС.xlsm

Автор - ABC
Дата добавления - 21.10.2012 в 13:49
Lenokk2000 Дата: Воскресенье, 21.10.2012, 14:18 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 4 ±
Замечаний: 0% ±

Спасибо огромное!

Можно спросить: а почему? Вернее: должно ли это условие соблюдаться со всеми парами свод - шаблон - одинаковое расширение, или проблема именно с xlsb?

И совсем маленкий вопросик, если можно.. Никак не могу найти (или подобрать) как если: Dim m As String и m = "AБДДС.xlsm", вставить m (или другую переменную)
вместо AБДДС.xlsm: Cells.Replace What:="[AБДДС.xlsm]", replacement:=""

Еще раз, благодарю!
С уважением!!!
 
Ответить
СообщениеСпасибо огромное!

Можно спросить: а почему? Вернее: должно ли это условие соблюдаться со всеми парами свод - шаблон - одинаковое расширение, или проблема именно с xlsb?

И совсем маленкий вопросик, если можно.. Никак не могу найти (или подобрать) как если: Dim m As String и m = "AБДДС.xlsm", вставить m (или другую переменную)
вместо AБДДС.xlsm: Cells.Replace What:="[AБДДС.xlsm]", replacement:=""

Еще раз, благодарю!
С уважением!!!

Автор - Lenokk2000
Дата добавления - 21.10.2012 в 14:18
ABC Дата: Воскресенье, 21.10.2012, 14:29 | Сообщение № 5
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
[vba]
Code
Cells.Replace What:="[" & m & "]",
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщение[vba]
Code
Cells.Replace What:="[" & m & "]",
[/vba]

Автор - ABC
Дата добавления - 21.10.2012 в 14:29
Lenokk2000 Дата: Воскресенье, 21.10.2012, 15:13 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 4 ±
Замечаний: 0% ±

Спасибо! Знание -сила!
 
Ответить
СообщениеСпасибо! Знание -сила!

Автор - Lenokk2000
Дата добавления - 21.10.2012 в 15:13
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!