гуру VBA, нид хэлп
Как быть?заебашить com+ и сделать все через него.
Энивей, вынеси тело события в отдельную процедуру и дергай её программно когда надо.
Да, это вариант, я в общем то и начал его реализовывать, только он геморнее получается. В описанной в первом сообщении проблеме непонятно, почему так происходит, это глюк или там надо какую-нибудь хрень включить/отключить перед .save?
Application.EnableEvents == ?
похожая проблема решена через создание класса.
У чела но когда доходит до строки с открытием файла, не выдавая никаких ошибок, он её не выполняет и переходит к следующей строкекак вариант, открытие делается через постановку сообщения в очередь, а во время работы скрипта очередь сообщений не обрабатывается
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open ("путь к файлу")
objExcel.Visible = True
Проверил-вроде все работает
(в его Workbooks - будет только вновь открытый файл, и любые формулы завязанные на другие книги - не обновятся).
хотя мб гоню ...
Оставить комментарий
Evgeny38
Всем привет. Столкнулся с проблемой, помогите плиз, кто рюхает в этом сраном языке.В общем есть такой код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Workbooks.Open ("Тут путь к какому-нибудь файлу")
End Sub
Это событие, которое возникает при сохранении рабочей книги. Предположим, что обрабатывая его, я открываю нужный мне файлик и с ним чото делаю. Этот код нормально работает, если я сохраняю книгу следующими способами: нажатие значка "Сохранить" на панели инструментов в эксель, при закрытии книги, когда вываливается сообщение "Сохранить изменения или нет" или если я пытаюсь сохранить книгу через "Сохранить как".
Но, если в каком-то модуле у меня написано:
ActiveWorkbook.save (т.е. сохраняю программно событие BeforeSave срабатывает, но когда доходит до строки с открытием файла, не выдавая никаких ошибок, он её не выполняет и переходит к следующей строке, т.е. файл не открывается. Почему такое происходит, ведь нажатие на значок "Сохранить" по идее это та же самая команда (workbook.save)?
Как быть?