Не удается получить обратные вызовы Excel Custom Ribbon

Я пытаюсь создать кнопку, которую я хочу показать на моей пользовательской вкладке, которая указывает, имеет ли пользователь самую последнюю версию моего надстройки Excel на работе. Я планирую проверить, есть ли у них самая последняя версия, записав исходный Last Modified файл xlam в файл всякий раз, когда пользователь открывает экземпляр Excel. Затем в событии Workbook_Open я инициирую действие OnTime чтобы сравнить дату и время, записанные в файле, с Last Modified публичным файлом каждые 15 минут. Это происходит, если у пользователей есть экземпляры Excel, открытые в момент развертывания обновления, так как им придется закрыть все экземпляры, а затем снова открыть Excel, чтобы иметь самую последнюю версию.

Во всяком случае, имея этот фон, у меня возникают проблемы с обратными вызовами для кнопки состояния. Моя идея состоит в том, чтобы кнопка отображала зеленый чек и имела ярлык Up-to-date, когда excel изначально открывается, потому что в этом случае Excel будет иметь текущую версию вместо кэшированной версии, которая сохраняется в файлах temp. Затем, если при updateCheck он обнаруживает более новую версию, я хочу изменить изображение кнопки на восклицательный знак и метку « Обновить сейчас» .

Проблема в том, что всякий раз, когда я пытаюсь поставить ANY callback на элемент кнопки (кроме значения по умолчанию onAction ), используя редактор пользовательского интерфейса, лента больше не отображается в Excel. Если у меня нет обратных вызовов на кнопке и у меня есть onLoad вызов onLoad на самой ленте, тогда лента отображается отлично при открытии Excel и onLoad событий onLoad (проверяется с помощью MsgBox ). Ниже мой код XML и VBA

В модуле 1:

 Public myRibbonUI As IRibbonUI 'Callback for customUI.onLoad Sub RibbonLoaded(ribbon As IRibbonUI) Set myRibbonUI = ribbon MsgBox ("Ribbon Loaded") End Sub 'Callback for customButton getImage Sub GetButtonImage(control As IRibbonControl, ByRef returnedVal) MsgBox (returnedVal) End Sub 'Callback for customButton getLabel Sub GetButtonLabel(control As IRibbonControl, ByRef returnedVal) MsgBox (returnedVal) End Sub 'Callback for customButton onAction Sub ButtonClick(control As IRibbonControl) 'Invalidates the cache of a single control MsgBox ("Fire!") myRibbonUI.InvalidateControl ("customButton") End Sub 

Код XML:

 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RibbonLoaded"> <ribbon startFromScratch="false"> <tabs> <tab id="customTab" label="Custom Tab"> <group id="customGroup" label="Custom Group"> <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="ButtonClick" getImage="GetButtonImage" getLabel="GetButtonLabel"/> </group> </tab> </tabs> </ribbon> </customUI> 

С приведенным выше кодом я просто просто пытался выяснить, могу ли я работать с обратными вызовами (чего я не мог).

Наконец, вопрос: что я делаю неправильно? Чтобы убедиться, что это не просто проблема при использовании в файле xlam я пытался делать только с файлом xlsm и я все равно получаю тот же результат.

Последующий вопрос: как мне изменить изображение на другое imageMso ? Я видел, как люди меняли пользовательские изображения с помощью изображения, но я также использую изображение для перехода на другое imageMso Или я использую imageMso вместо изображения в процедуре обратного вызова?

Вы не можете иметь как label и getLabel , или image и getImage в одном узле кнопки XML. Разве пользовательский редактор пользовательского интерфейса не отметил это, когда вы проверили код?

  • Необходимо получить все имена полей AS400 DB2 в таблице
  • Формулы Excel не работают при изменении данных в xml
  • MS Excel 03 - Удаление строк, содержащих идентификаторы строки в столбце A, при объединении других значений
  • Экспорт xml из Excel
  • Как я могу получить все значения отдельно в XML-файле, используя Linq для xml в c #
  • Почему Excel (xlsx) сохраняет некоторые значения в xml с дополнительными значениями?
  • Таблица Excel для конвертера XML Vba помещает все мои строки данных в один тег в качестве атрибутов?
  • Как передать параметр в источник данных на основе URL-адреса - Birt 4.3.2
  • как записать файл XML в файл excel?
  • Как получить имена столбцов из XML-формата документа Microsoft Excel?
  • Open Xml Excel «Excel нашел нечитаемый контент в <файле>. восстановить содержимое этой книги? »после записи в файл Excel VB.Net
  • Interesting Posts

    Таблица Excel: как найти разницу между двумя наборами столбцов в одной строке

    Ошибка создания диаграммы (двойное создание)

    В excel, как я могу разделить значение в ячейке и применить формулу vlookup для каждого значения split?

    Создайте иерархию на основе заранее определенных уровней в Excel (Formula или VBA)

    Макрос для группировки данных по месяцам

    Использование регулярных выражений VBA для определения строк, которые не содержат определенного слова

    openpyxl нечитаемый контент

    Найдите одно или несколько уникальных слов в любой ячейке и укажите конкретное возвращаемое значение для каждого в другой ячейке

    Условное форматирование VBA с изменяемыми условиями

    Как загрузить и обновить файлы DB .xls или .xlsx

    Подключение JDBC-ODBC к Excel

    Excel и C # .NET

    Как выбрать только содержимое на листе, а не все неиспользуемые / пустые значения ячейки

    Как сохранить таблицу таблицы excel таблицы в формате dbf с помощью кодировки Unicode?

    openxml 2.5, как вставить строку в ячейку?

    Давайте будем гением компьютера.