質問

レガシー4GL進捗コードをサポートしています。 4GLを実行するサーバーの1つは、私の知らないうちに2007年に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も実行される同じコードをマシンから実行すると、正常に実行されます。

これをトラブルシューティングする方法についてのアイデアはありますか?

ありがとう!

役に立ちましたか?

解決

Excelのコンテンツを新しいファイルにコピーしましたが、今では数字をうまく引いています。変...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top