Определить, когда строки были удалены пользователем в Excel 2003 - PullRequest
1 голос
/ 27 апреля 2011

У меня есть надстройка C # .Net для Excel 2003. Я надеюсь, что есть ловушка (событие?), К которой я могу присоединиться, чтобы определить, когда пользователь удалил строку или строки из активной рабочей таблицы, какнекоторые кеши нужно будет пересчитать или отбросить, когда это произойдет.

Есть ли такой хук или событие?Если нет, есть ли способ достичь того, чего я хочу?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2016

Вы можете попробовать следующее: Создать именованный диапазон, который указывает на самую дальнюю ячейку на листе (ячейка XFD1048576).Если возникает событие смены листа, то проверьте, относится ли этот именованный диапазон к той же ячейке.Если это так, ни одна строка или столбец не были вставлены или удалены, и событие указывает на некоторое другое изменение (например, изменение значения ячейки).Если этот именованный диапазон ссылается на другой адрес, то строка / столбец была удалена.Если он возвращает ошибку #REF, то строка или столбец были добавлены, и адрес именованного диапазона превысил максимум.В обоих случаях удалите именованный диапазон и заново создайте его.

0 голосов
/ 28 апреля 2011

К сожалению, нет способа определить, когда строка удалена.Согласно списку событий Worksheet , вы можете использовать событие Change , чтобы выяснить, что что-то изменилось, а затем перебрать все строки на рабочем листе, чтобы выяснить, что изменилось, и обновить вашкеш соответственно. Это может помочь вам продумать и другие способы использования Change метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...