Страницы: 1
RSS
Пропадает Моя надстройка и личная книга макросов, VBA
 
Добрый день.
Подскажите, пож-та, почему при создании новой книги исчезают макросы из Personal.xlsb, а также пропадают макросы и Моя вкладка системного меню из подключенной надстройки. Если переподключить настройку, то вкладка системного меню появляется.
Тоже самое происходит когда передаю распознанные данные из FineReader в Excel. Нужные мне макросы для дальнейшей обработки переданного документа исчезают из (Alt+F8). Если сохранить и заново открыть документ "всё" становится доступным.
Создаю новую книгу так:
Код
Sub Run_New_Excel()
    Set NewExcel = CreateObject("Excel.Application")
    NewExcel.Workbooks.Add
    NewExcel.Visible = True
End Sub
 
Если Вы загружаете Excel как OLE-объект, то персональная книга макросов автоматически не загружается, так же как и надстройки.
Владимир
 
Цитата
asesja написал:
CreateObject("Excel.Application")
этот метод умеет подгружать только надстройки DLL или надстройки автоматизации. Надстройки типа xla и xlam, а  также файлы из папок автозагрузки не подгружаются. Документированная особенность.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
При этом можно загрузить необходимые книги непосредственно в макросе #1.
Владимир
 
Подскажите, пож-та, можно ли как то сделать чтобы после макроса в котором открывается новая книга, а также при выгрузке в Excel из FineReader мои макросы и надстройка были доступны.
Очень неудобно закрывать документ с сохранение и заново его открывать чтобы потом обработать написанным макросом.
Может имеется какая то настройка или способ? )))

Спасибо.
 
А для каких целей Вы открываете новый экземпляр Excel в #1? Почему нельзя всё делать в одном экземпляре?
Владимир
 
Цитата
asesja написал:
Создаю новую книгу так:
Sub Run_New_Excel()
   Set NewExcel = CreateObject("Excel.Application")
   NewExcel.Workbooks.Add
   NewExcel.Visible = True
End Sub
а зачем так???  есть у вас ответ на этот простой вопрос?
я, обычно, создаю новую книгу так:
Код
Workbooks.Add
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
asesja написал:
а также при выгрузке в Excel из FineReader
вот здесь вряд ли. А по первому пункту ответ дан - не создавайте новый экземпляр и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо за ответы .
На вопрос зачем или почему так делаю, могу ответить что по другому не умею, точнее не пробовал))).
Попробую переписать свои макросы с открытием документов в пределах одной книги.
Код
Workbooks.Add
 
asesja, Доброго дня.
Цитата
asesja написал:
пределах одной книги
Правильнее будет в пределах одного процесса.
Откройте диспетчер задач, и посмотрите что происходит при Excel.Application и при Workbooks.Add
Поймёте наглядно :)
Изменено: Wild.Godlike - 23.10.2020 17:19:46
 
Wild.Godlike, да вы правы. Бывает запущено несколько процессов Excel.
В таком случае подскажите, пож-та, как корректно открыть 3-4 документа с локального диска в пределах одного процесса и к примеру в 5-й новый документ собрать данные.
Похожие задачи делаю из VBA, но иногда пишу маленькие программки на устаревшем VB6, т.к. синтаксис очень похож.
Спасибо.
 
Цитата
asesja написал:
как корректно открыть 3-4 документа с локального диска
так же, как из VB6. Только вместо
Код
Set NewExcel = CreateObject("Excel.Application")
пишите просто
Код
Set NewExcel = Application
это чтобы было проще код поменять. Одну строку всего измените внутри кодов VBA, зато все сразу исправите :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, благодарю!
Буду пробовать, как вы посоветовали.
Страницы: 1
Наверх