2015-10-29 4 views
1

В конечном итоге я пытаюсь автоматизировать/запланировать извлечение данных из Essbase.Макрос для получения данных Essbase

Я начал с макроса, который отлично работает. Образец кода:

Sheets("Sheet1").Select 
range("B1:b1").Select 
ActiveCell = j 
application.Run macro:="EssMenuVRetrieve" 

Этот макрос будет работать примерно через 0,5 секунды и получить данные отлично.

Далее я написал файл .bat и vbScript для автоматизации процесса. но это не сработает.

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

Когда я запускаю командный файл, он вызывает макрос как я хочу, выполняет код до EssMenueVRetrieve, а затем просто зависает бесконечно. Данные не возвращаются. И никакой код после того, как он будет выполнен.

Я не могу понять проблему, связанную с рабочим макросом, с неработающим vbscript.

ответ

0

Мне не очень повезло с использованием метода EssMenuVRetrieve. Взгляните на «библиотеку» функций, которые входят в состав Essbase addin. Он должен находиться под файлом ExcelAddin -> bin и называется «essxlvba.txt» (или что-то в этом роде). Я прочитал это и успешно придумал решение, подобное приведенному ниже. Он отлично работает с запланированным сценарием летучей мыши, который открывает около 15 различных файлов и выполняет 100+ извлечений.

Dim wsTar as Worksheet 
    Set wsTar = thisworkbook.sheets("Sheet1") 
Dim rngTar as Range 
    Set rngTar = wsTar.Range("B1:B1") 
'EssVConnect... 
EssVRetrieve wsTar, rngTar, 1 'this is the line that performs the actual retrieve 
'EssVDisconnect