Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Отследить удаление/вставку ячеек

Автор: mokc0der Пятница, 28 Октября 2005, 12:49

Как Отследить удаление/вставку ячеек ? Желательно с возможностью запрета

Автор: pashulka Пятница, 28 Октября 2005, 14:26

Насколько мне известно, более или менее универсального решения этой задачи не найдено ... но некоторые ухищрения можно увидеть здесь : http://www.developing.ru/forum/topic3874.html

Автор: Квазимодо Среда, 16 Ноября 2005, 17:37

Извините за Эстоооонию, но задача и в самом деле головоломная. Тут вот какая штука - решение с заменой процедур OnAction для пунктов добавления/удаления ячеек в меню Excel, предложенное на rsdn.ru (на которое выходишь по ссылкам в теме, ссылку на которую дал pashulka), очень красиво, но есть одна загвоздка. В своей процедуре OnAction мы можем узнать выбранную ячейку (Selection), но мы не видим, какая именно опция выбрана в диалоге добавления или удаления ячеек. В результате пользователь может случайно промахнуться мышью и выбрать "удалить всю строку" (включая защищенную ячейку), и это у него получится, поскольку Selection меняется уже ПОСЛЕ того, как мы его проверили. А обработка события Worksheet_Change (с просмотром UsedRange.Rows.Count и UsedRange.Columns.Count) тоже не поможет - при добавлении пустых ячеек (не скопированных) это событие не возникает.
В общем, у меня тут получился еще один "велосипед", и вроде бы в нем этих пакостей нет, но макросы... ну, не то, чтобы слишком большие, но читать прямо здесь все равно будет неудобно. Так что, mokc0der (или кто-либо еще), если проблема еще висит, шли мне свой мэйл, а я перешлю Excel-евский файлик.

Автор: mokc0der Четверг, 17 Ноября 2005, 23:59

Квазимодо, проблема не висит - кое как разрешил ее. Но очень бы хотелось посомтреть на твое решение. Аттачи сюда или закинь на рапидшару wccool.gif

Автор: Квазимодо Пятница, 18 Ноября 2005, 12:36

Уже послал Gluzer'у, а он выложит... Опа, извиняюсь, ошибка доставки вышла... А, нет, это у меня заскок получился biggrin.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)