У меня есть файл Excel 2010 (.xlsm
), содержащий код в нескольких модулях, включая ThisWorkbook
. Модуль ThisWorkbook
содержит несколько процедур Event
, включая событие _SheetActivate
.Excel Crashes при редактировании скрипта в этой книге
У меня есть кнопка на одном листе, которая при нажатии активирует другой лист.
Сегодня после работы на некотором коде в одном из обычных модулей, я нажал на кнопку и получил
Run time error '-2147417848 (80010108)'
Method 'Activate' of object '_Worksheet' failed.
Любую попытку активировать другой лист (вручную или программно) происходит сбой приложения.
После некоторых обширных исследований, все я нашел this page что дает дополнительную информацию об ошибке:
-2147417848 (80010108): The object invoked has disconnected from its clients.
Устранение ошибки не так много беспокойства для меня, потому что мне не нужно, что особенно событие больше. Тем не менее, мне нужно выяснить, почему Excel продолжает сбой. Я попытался удалить код, но Excel разбился. Поэтому я попробовал комментировать код, но Excel все еще разбился. Увы, все, что я пробовал, привело к крушению. Это заставляет меня думать, что в этом модуле что-то должно быть повреждено (код в других модулях работает нормально, но ни одна из других процедур не активирует лист).
Я читал, что вариант состоит в том, чтобы скопировать все (включая код) в новую книгу, но я хотел бы избежать этого, если это возможно, поскольку для этого потребуется скопировать больше, чем текущий лист ... но Я не могу скопировать другие листы без сбоя Excel. Кто-нибудь есть идеи о том, как я могу удалить/удалить код из ThisWorkbook
?
удалите его программно –
попробуйте экспортировать все классы/формы/модули, а затем удалить все из них, сохранить как .xlsx. перезапустите excel с этим .xlsx, импортируйте экспортированные, отредактируйте то, что вам нужно, затем сохраните как .xlsm. – PatricK
@Patrick Спасибо за указатели! – ARich