Office 2007升级会破坏4GL进度代码

时间:2011-01-10 15:26:46

标签: excel office-2007 progress-4gl

我支持一些传统的4GL Progress代码。我们运行4GL的服务器之一在我不知情的情况下升级到了Office 2007(很好,对吧?)。无论如何,升级打破了运行excel.application COM组件的一段代码。 Finance维护一个销售预测编号列表,这些编号保存在Excel文档中,以下代码加载这些编号:

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.

当代码运行时,我收到以下错误:

“处理方法/语句时引用的组件句柄无效:范围。”

奇怪的是A)它在“打开”命令或“创建”命令上没有失败 - 所以它似乎不是COM对象本身的问题。并且B)如果我从运行Office 2007的机器运行相同的代码,它运行得很好。

关于我如何解决这个问题的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

我将excel的内容复制到一个新文件中,它现在正好拉数字。奇怪的...