2

私はこの.NET4.0コードを持っています:

var myTable = tables[1];
myTable = tables.Item["Table1"];
myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");

.NET 3.5でコンパイルしようとすると、たくさんのエラーが発生します。

エラー23プロパティ、インデクサー、またはイベント'Item'は言語でサポートされていません。アクセサメソッド'Microsoft.Office.Interop.Excel.ListObjects.get_Item(object)'を直接呼び出してみてください

エラー24「Microsoft.Office.Interop.Excel.ListObjects」に「OfType」の定義が含まれておらず、最適な拡張メソッドのオーバーロード「System.Linq.Queryable.OfType(System.Linq.IQueryable)」に無効な引数がいくつかあります

エラー25インスタンス引数:「Microsoft.Office.Interop.Excel.ListObjects」から「System.Linq.IQueryable」に変換できません

これを.NET3.5に変換できるように、これらのエラーの意味を正確に教えていただけますか?

アドバイスありがとうございます。

4

1 に答える 1

2

この質問は、このコマンドに与えられた回答を参照しています。少なくとも2行のソースデータが必要です。コードは、コード内のテーブル/リストオブジェクトにアクセスする3つの異なる方法を示しています。

これは私が投稿したコードでした:

    var myTable = tables[1];
    var myTable = tables.Item["Table1"];
    var myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");

コードでテーブルにアクセスするにはさまざまな方法があることを説明するつもりでした。

コンテキストを説明するために、「TestButton」と呼ばれる単一のボタンを持つリボンを作成しました。これがコード全体で、3.5で動作するはずです。

using Excel = Microsoft.Office.Interop.Excel;


    private void TestButton_Click(object sender, RibbonControlEventArgs e)
    {
        var worksheet = (Excel.Worksheet) Globals.ThisAddIn.Application.ActiveSheet;
        var tables = worksheet.ListObjects;
        var table = tables.Item["Table1"]; // this is the line you are referring to

        //do something with table
    }
于 2012-10-17T22:39:20.177 に答える