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.
当代码运行,我得到了以下错误:
“无效组件的句柄引用同时处理方法/声明:范围。“
奇怪的是,A)它不会在“打开”命令或“创建”命令失败 - 所以它似乎不是COM对象本身的问题。和B)如果我运行同样的代码从我的机器,也运行Office 2007,它运行得很好。
关于如何解决此问题的任何想法?
谢谢!