2011-01-10 29 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的內容複製到一個新文件中,現在它正在拉動數字。奇怪...