2011-01-10 6 views
0

Я поддерживаю некоторые устаревшие коды прогресса 4GL. Один из наших серверов с 4GL был обновлен до Office 2007 без моего ведома (хорошо, правда?). Во всяком случае, обновление разбило сегмент кода, в котором работает компонент excel.application COM. Финансы поддерживает список номеров прогноза продаж, что они держат в документе Excel и следующий код загружает эти цифры:Обновление Office 2007 4GL Код прогресса

CREATE 
    "Excel.application" chExcelApplication NO-ERROR. 
ASSIGN 
    chExcelApplication:VISIBLE = NO NO-ERROR. 

ASSIGN 
    chWorkbook = chExcelApplication:Workbooks:OPEN(STRING(i-infile)) NO-ERROR. 

ASSIGN 
     chWorkSheet = chExcelApplication:Sheets:ITEM((1)) NO-ERROR. 

IF input frame f-in Plan1 <> 0 THEN 
    Plan1 = input frame f-in Plan1. 
ELSE 
    Plan1 = chWorkSheet:range(forecastColumn + "4"):VALUE. 

IF input frame f-in Plan2 <> 0 THEN 
    Plan2 = input frame f-in Plan2. 
ELSE 
    Plan2 = chWorkSheet:range(forecastColumn + "7"):VALUE. 

IF input frame f-in Plan3 <> 0 THEN 
    Plan3 = input frame f-in Plan3. 
ELSE 
    Plan3 = chWorkSheet:range(forecastColumn + "6"):VALUE. 

Когда код работает, я получаю следующее сообщение об ошибке:

«Invalid компонент-ручке ссылка в процессе обработки/оператора: Range. "

Странно, что A) он не прерывается командой «Открыть» или «Создать», поэтому это не похоже на проблему с самим объектом COM. И B) если я запустил тот же код с моего компьютера, который также запускает Office 2007, он работает отлично.

Любые идеи о том, как я могу устранить эту проблему?

Спасибо!

ответ

0

Я скопировал содержимое excel в новый файл, и теперь он просто набирает цифры. Weird ...