|
![]() |
#1 |
Участник
|
Или он не видит активную ячейку или не активен сам CommandBar.
Но мне кажется что, просто CommandBar рассматривается в этом случае без привязки к ячейке Пробовал так Range("A1").Application.CommandBars(10).Controls(1).SetFocus Но видно, что нужная кнопка не активна, поэтому и ошибка выходит на Execute Как только CommandBar External Data получает фокус, кнопка активируется. |
|
![]() |
#2 |
Moderator
|
Ну в общем народ в мире тоже мучается аналогичными проблемами: http://www.pcreview.co.uk/forums/thread-2274645.php
В качестве временного отладочного решения можно попробовать открывать это окошко через последовательность нажатий клавиш (а там, глядишь, может и сам бизнес-процесс поменяете ![]() При это Excel должен быть обязательно виден и иметь фокус, иначе кнопки сработают, например, в редакторе X++, откуда запускается джоб. В самом Excel должна быть активна ячейка, входящая в диапазон веб-запроса. В рамках джоба - эта ячейка А1 на первом листе файла TestWebQuery.xls, в котором уже должен присутствовать ранее сохраненный веб-запрос. Код: static void Job53(Args _args) { COM xlApp, wbks, wbk, wkss, wks; COM rng; xlApp = new COM('Excel.Application'); xlApp.Visible(true); wbks = xlApp.Workbooks(); wbk = wbks.Open(@'C:\TestWebQuery.xls'); wkss = wbk.Worksheets(); wks = wkss.Item(1); wks.Select(); rng = wks.Range('A1'); rng.Select(); xlApp.SendKeys('+{F10}{UP}{UP}{UP}{UP}~'); } - Shift+F10 - вызов контекстного меню (как правый клик мышкой) - 4 раза "стрелка вверх" - позиционирование в меню на пункте "Edit Query" - Enter - активизация пункта "Edit Query" и отображение нашего желанного диалога |
|