Как выйти из режима редактирования ячейки Excel? Используя объектную модель Excel'а...
Возможно, есть другой путь решения задачи... По нажатию кнопки необходимо выдать запрос пользователю, если документ был изменен (важна формулировка запроса, т.е. стандартный диалог excel "сохранить изменения в файле ...?" не подходит). Если пользователь на запрос ответит утвердительно, тогда сохранить и закрыть доукмент (необходимо освободить локальный файл, чтобы выполнить с ним еще несколько операций).
Возникло несколько проблем:
1) Если пользователь вошел в режим редактирования ячейки, а документ до этого не был изменен, то, пока он не выйдет из этого режима, документ будет считаться неизмененным (workbook.saved = false)
2) Если программно вызвать процедуру сохранения (workbook.save) во время редактирования ячейки, то документ не сохраняется и при закрытии выдается стандартный диалог excel ("сохранить изменения...")
PS: в Project аналогичная проблема
Как выйти из режима редактирования ячейки Excel?
Модератор: Naeel Maqsudov
Это получится сделать, наверно, только какой-нибудь внешней программой. Внутренний макрос самого Excel не сможет преодолеть режим редактирования ячейки (ни SendKeys, ни процедуры управления мышкой).
Всякое решение плодит новые проблемы.
- Игорь Акопян
- Сообщения: 1419
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
4est, на сколько я помню, во время редактирования ячейки выйти из Экселя невозможно, кроме того все внешние обращения к Экселю в этот момент тоже получают отказ.
Может, возможно перехватить событие начала и конца редактирования ячейки? На это время сделать функцию недоступной... Или, если на момент вызова функции узнать, что пользователь находится в режиме редактирования ячейки, то прервать выполнение функции с каким-нибудь сообщением?
- Игорь Акопян
- Сообщения: 1419
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
обратил тут внимание.... вообще-то не изменённая книга - при workbook.saved = true" писал(а):документ будет считаться неизмененным (workbook.saved = false)
т.е это свойство следует читать как Книга.Сохранена
очепятался просто...Игорь Акопян писал(а):обратил тут внимание.... вообще-то не изменённая книга - при workbook.saved = true
т.е это свойство следует читать как Книга.Сохранена
так может кто-то знает как определить, находится excel в режиме редактирования ячейки или не находится? выйти из этого .... режима я надежду уже потерял.
Странно, но у меня вот такое работает:Genyaa писал(а):Внутренний макрос самого Excel не сможет преодолеть режим редактирования ячейки (ни SendKeys, ни процедуры управления мышкой).
'после двойного клика ячейка устанавливается в режим редактирования. дл того, чтобы это не мешало:
SendKeys ("~")
ActiveCell.Offset(-1, 0).Activate