vba IRibbonUI.ActivateTab не работает в Office 2019 - PullRequest
1 голос
/ 17 июня 2019

В Excel 2010 работает существующий (мой) код vba, который активирует пользовательскую вкладку ленты: IRibbonUIObjectName.ActivateTab "tabID"

Код существует как стандартная операция в подпрограмме, которая обрабатывает изменения активного окна (чтобы активировать вкладку, когда это необходимо).

Этот же код просто не будет работать в Excel 2019. Во время выполнения выдает исключение «недопустимый вызов или аргумент»

Код проходит проверку синтаксиса, и я восстановил строку, позволив vba подсказать мне.

т.е. Тип: 'IRibbonUIObjectName.' и пусть редактор предоставит ActivateTab (подтверждение действительности объекта).

Прочитал текущую документацию для разработчиков Office, и синтаксис не изменился.

Основные вопросы:

1) Кто-нибудь знает, изменилось ли что-либо в способе использования этого метода с 2010 по 2016 или 2019 год?

2) Может кто-нибудь, кто успешно использует этот метод в Excel 2019, рассказать мне, как вы вызываете подпрограмму, которая выполняет метод и; какой синтаксис вы используете?


Дополнительная информация:

Все остальные функции вкладки и ее элементов управления работают так же, как и в системах 2010 года.

Я проверяю объект ленты перед выполнением по:

If Not mobQSRibbon Is Nothing Then mobQSRibbon.ActivateTab "plTAB_QuoteSystem" 

Пространство имен:

customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="ModuleName.SubName" >

Дополнительная информация 2:

Дальнейшее тестирование показывает, что проблема не просто синтаксическая. Метод работает иногда, а не другие. В частности:

1) Выполнение метода после открытия рабочей книги вызывает исключение То есть, выполнив ActivateTab во время обработки события WorkbookActivate, вызванного как частичное открытие рабочей книги.

2) Выполнение метода при обработке события WorkbookActivate, инициируемого простым переключением на уже открытую книгу, не вызывает исключения.

3) Аналогичным образом, выполнение метода при обработке события SheetActivate простым переключением листов не вызывает исключения.

Так что проблема, похоже, связана с тем, что изменилось то, как Excel справляется с лентой, откройте рабочую книгу.

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