Страницы: 1
RSS
Ошибка открытия книги макросом.
 
Дано:
Офис 2010.
В аутлук приходит письмо, по факту прихода запускается макрос, у которого есть строчка:
Set WbIn = XLApp.Workbooks.Open(fName, False, True)
На ней макрос говорит Runtime error 1004, метод Workbooks.Open Failed
Если написать так:
Set WbIn = XLApp.Workbooks.Open(fName)
то все работает. О_о.
Если написать так: Set WbIn = XLApp.Workbooks.Open(fName, UpdateLinks:=False, ReadOnly:=True), тоже валится.
Внимание! Макрос верой и правдой работал ежедневно в течение лет трех(!), строка была с  False, True), винда и офис не обновлялась. Почему оно вдруг сегодня перестало работать?
Изменено: Лузер™ - 30.11.2015 15:42:13
Bite my shiny metal ass!      
 
Видимо, код не может открыть файл в режиме только чтения, т.к. файл открывается с сети и открывается в Защищенном режиме, в результате которого доступа к свойствам книги просто нет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Файл открывается с локального диска. Если его открыть руками, то никакого защищенного просмотра не предлагается.
Кстати, можно ли программно снять какую галку с файла, чтобы он не считался полученным по сети?
Bite my shiny metal ass!      
 
Нет, программно этого сделать нельзя. Можно только добавить папку(с подпапками) в надежные расположения.

Чтобы более точно понять причину - попробуй XLApp сделать видимым и посмотреть, как открывается без параметров(Open(fName)) и с ними(Open(fName, False, True) ). Может хоть какие-то мысли появятся.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Все что можно и что нельзя уже давно в надежных :)

Само собой начал с визибле=тру.  Так вот, ничего не происходит. С параметрами мелькает новое окно книги и тут же ошибка. Хотя бывает, что ошибка не вылетает, а просто макрос встает, как будто тут конец макроса. Без параметров просто работает, ни диалогов, ни предупреждений, ничего.
Самый дурдом в том, что три года работало как часы, а стоило мне не выйти на работу в понедельник, так мне звонят и говорят, что не работает.
Bite my shiny metal ass!      
 
Видимо, все же что-то да появляется - запрос или иное модальное окно. А если DisplayAlerts=True поставить перед открытием - не поможет?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Так оно и так стоит True, по умолчанию.
Bite my shiny metal ass!      
 
Блин, описка. Конечно же False надо
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Сделал:
Код
XLApp.DisplayAlerts = False
MsgBox ("перед")
Set WbIn = XLApp.Workbooks.Open(fName, False, True) 
MsgBox ("после")
Появляется MsgBox ("перед"), появляется окно открываемой книги на панели задач и...
И все. Макрос встает. Ни ошибок, ничего. Окно открываемой книги исчезает.
MsgBox ("после") не появляется.

Вообще такое поведение макросов у меня периодически встречается, когда он встает в произвольном месте без ошибок и сообщений. Приходится искать, где он встал.
Изменено: Лузер™ - 02.12.2015 12:49:13
Bite my shiny metal ass!      
Страницы: 1
Наверх