Как выйти из режима редактирования ячейки Excel?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
4est
Сообщения: 6
Зарегистрирован: 26 мар 2007, 08:52

26 мар 2007, 09:07

Как выйти из режима редактирования ячейки Excel? Используя объектную модель Excel'а...

Возможно, есть другой путь решения задачи... По нажатию кнопки необходимо выдать запрос пользователю, если документ был изменен (важна формулировка запроса, т.е. стандартный диалог excel "сохранить изменения в файле ...?" не подходит). Если пользователь на запрос ответит утвердительно, тогда сохранить и закрыть доукмент (необходимо освободить локальный файл, чтобы выполнить с ним еще несколько операций).
Возникло несколько проблем:
1) Если пользователь вошел в режим редактирования ячейки, а документ до этого не был изменен, то, пока он не выйдет из этого режима, документ будет считаться неизмененным (workbook.saved = false)
2) Если программно вызвать процедуру сохранения (workbook.save) во время редактирования ячейки, то документ не сохраняется и при закрытии выдается стандартный диалог excel ("сохранить изменения...")

PS: в Project аналогичная проблема
Genyaa
Сообщения: 307
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

27 мар 2007, 10:36

Это получится сделать, наверно, только какой-нибудь внешней программой. Внутренний макрос самого Excel не сможет преодолеть режим редактирования ячейки (ни SendKeys, ни процедуры управления мышкой).
Всякое решение плодит новые проблемы.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

27 мар 2007, 11:18

4est, на сколько я помню, во время редактирования ячейки выйти из Экселя невозможно, кроме того все внешние обращения к Экселю в этот момент тоже получают отказ.
Изображение
4est
Сообщения: 6
Зарегистрирован: 26 мар 2007, 08:52

27 мар 2007, 12:05

Может, возможно перехватить событие начала и конца редактирования ячейки? На это время сделать функцию недоступной... Или, если на момент вызова функции узнать, что пользователь находится в режиме редактирования ячейки, то прервать выполнение функции с каким-нибудь сообщением?
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

27 мар 2007, 17:22

&quot писал(а):документ будет считаться неизмененным (workbook.saved = false)
обратил тут внимание.... вообще-то не изменённая книга - при workbook.saved = true
т.е это свойство следует читать как Книга.Сохранена ;)
Изображение
4est
Сообщения: 6
Зарегистрирован: 26 мар 2007, 08:52

28 мар 2007, 07:12

Игорь Акопян писал(а):обратил тут внимание.... вообще-то не изменённая книга - при workbook.saved = true
т.е это свойство следует читать как Книга.Сохранена ;)
очепятался просто...

так может кто-то знает как определить, находится excel в режиме редактирования ячейки или не находится? выйти из этого .... режима я надежду уже потерял.
Кулибяка
Сообщения: 3
Зарегистрирован: 10 сен 2015, 13:46

10 сен 2015, 13:49

Genyaa писал(а):Внутренний макрос самого Excel не сможет преодолеть режим редактирования ячейки (ни SendKeys, ни процедуры управления мышкой).
Странно, но у меня вот такое работает:
'после двойного клика ячейка устанавливается в режим редактирования. дл того, чтобы это не мешало:
SendKeys ("~")
ActiveCell.Offset(-1, 0).Activate
Ответить