0

Excel 相互運用機能を使用してスプレッドシートからセル値を取得しようとしていますが、使用している次のコードでコンパイラ エラーが発生します。

動的式のコンパイルに必要な 1 つ以上の型が見つかりません。参照がありませんか?

Range currentFind = sheet.Cells.Find("some string", Type.Missing,
                    XlFindLookIn.xlValues, XlLookAt.xlPart, 
                    XlSearchOrder.xlByRows, XlSearchDirection.xlNext,
                    false, Type.Missing, Type.Missing);

if (currentFind[1,1].Value != null)
{
    string CellValue = currentFind[1,1].Value.ToString();
}

ここで何が起こっているのか分かりますか?何かをキャストする必要があるかもしれないと推測していますが、何がわかりません。キャストしてみましcurrentFind[1,1].Valueたが、うまくいかないようです。

編集:

Embed Interop Types参照に設定された回避策を見つけましたがFalse、ここで何が起こっているのか、この状況をどのように処理するのかを知りたいです。

4

2 に答える 2

0

プロジェクトへの参照を追加する必要があるようです。他にどのようなコードがあるかはわかりませんが、これがプロジェクトに相互運用アセンブリを追加する必要がある場合。編集者がエラーのある行をマークしているかどうかを確認し、その行で使用しているオブジェクトのタイプを確認してください。

余談ですが、次の行に潜在的な問題があることがわかります。

if (currentFind[1,1].Value != null)

値が見つからない場合、currentFind は null であり、配列のように null にアクセスしようとしています。currentFind が null でないかどうかを確認してください。

if (currentFind != null)
于 2013-05-14T10:02:58.013 に答える