Как читать статус ожидания надстройки Excel - PullRequest
0 голосов
/ 07 сентября 2018

Таким образом, мы используем надстройку под названием «Data Transfer Excel Add-In» для импорта данных из серии IBMi непосредственно в электронные таблицы. Я делаю это достаточно регулярно, поэтому я создал макросы для этого процесса; однако, нет никакого усовершенствованного макро-процесса, чтобы сделать это. Я провел бесчисленные часы исследований и попыток выполнить инструкции на веб-странице IBM о создании временной таблицы biff8 и копировании данных в буфер обмена и их импорте в качестве последнего шага, но это не было действительно эффективным решением, и оно получило немного слишком сложный для моего уровня квалификации.

Из-за отсутствия доступных элегантных решений я прибег к методу грубых sendkeys, чтобы использовать ярлыки для ручного доступа к ленте, и это работает на удивление хорошо (я понимаю проблемы с sendkeys, которые уже использовались в качестве последнего средства). Это работает для решения моей первоначальной проблемы, но всякий раз, когда я делаю это, он должен запускаться в конце любого кода, так как любое последующее кодирование всегда будет создавать проблемы. Поэтому, если я попытаюсь импортировать запрос в ячейку a5, а затем переместиться на sheet2 после импорта, он сначала переместится на sheet2 и импортирует, а иногда и вообще не импортирует. Мне было интересно, если есть способ прочитать состояние приложения, подобное application.CalculationState, который будет применяться к надстройкам. По какой-то причине состояние расчета не регистрируется с помощью этого метода. Я пробовал application.wait, и это, кажется, не имеет значения, когда импорт используется, он ДОЛЖЕН быть последним в коде, и я не могу обойти это.

Я поставил пример кода импорта запроса, если это поможет. Я не могу прикрепить скриншот, но после импорта запроса появляется всплывающее окно под названием «IBM i Access Data Transfer», которое говорит: «Получение информации из IBM i. Пожалуйста, подождите ....» *

код:

SendKeys "%x"    'brings up add-ins
SendKeys "r"     'selects add-in option
SendKeys "~"
SendKeys "~"
SendKeys "jplibr/gugmolist"  'types query library and name
SendKeys "~"
SendKeys "~"
SendKeys "~"
SendKeys "{NUMLOCK}"   'fixes stupid numlock/sendkeys glitch

Я пробовал:

если application.calculationstate = x1calculating затем Application.Wait (Now + TimeValue ("0:00:01")) конец если

также использовал x1pending безуспешно

Спасибо за вашу помощь, извините, если это не очень кратко

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