Книга Excel, созданная с помощью VSTO, не выполняет кнопки после сохранения

Поэтому я сделал следующие шаги:

  1. Подготовлена ​​надстройка Excel VSTO, в которой надстройка создает два листа Excel и размещает на этих двух листах несколько кнопок. Каждая кнопка может иметь тривиальное или нетривиальное назначение действия. Например, button1 просто увеличит размер шрифта, а button2 будет использовать код VSTO C# для инициализации нескольких классов, обработки данных и печати вывода на лист. Все это работает при запуске Excel из Visual Studio.
  2. Затем я сохраняю книгу (пробовал также сохранить как «с включенным макросом»).
  3. Закрыть Эксель. Закройте Визуал Студию.
  4. Снова откройте книгу с помощью Excel.
  5. Нажмите на любую кнопку, и ничего не произойдет -> как будто к кнопкам нет никакой функциональности.

Это известное ограничение или я делаю что-то не так?

Моя цель — использовать надстройку VSTO для создания функционального листа (добавление форматирования, добавление кнопок и т. д.), который впоследствии любой сможет открыть без фактической установки надстройки. Теперь я сомневаюсь, что это вообще возможно.

🤔 А знаете ли вы, что...
C# имеет механизм исключений для обработки ошибок и исключительных ситуаций.


50
1

Ответ:

Решено

Действия для кнопок являются частью надстройки, а не листа.

Когда вы добавляете кнопку, это меняет сам лист. Когда вы добавляете к кнопке обработчик событий, который вызывает код в надстройке, а не на листе.

Вам нужна надстройка, чтобы искать кнопки при открытии документа, а затем прикреплять к этому моменту обработчики событий.