2011-01-10 66 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. 

当代码运行,我得到了以下错误:

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

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

关于如何解决此问题的任何想法?

谢谢!

回答

0

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