2009-03-13 10 views
2

Microsoft ExcelデータシートをExcelスプレッドシートからエクスポート/インポートするために、Microsoft.Office.Interop.Excelアセンブリを使用するアプリケーションを作成しています。条件付き書式設定を使用しようとするまで、すべてがうまくいっていました(1つのインデックスとすべてのオプションパラメータを除いて!)。 Range.FormatConditions.Addを呼び出すと、そのようなメソッドが存在しないことを伝えるMissingMethodExceptionが返されます。これは、VistaとXPの両方で発生します。ここでExcel Interop:Range.FormatConditions.Add MissingMethodExceptionをスローする

は、例外を生成するコードの例です:

//1. Add a reference to Microsoft.Office.Interop.Excel (version 11.0.0.0) 
//2. Compile and run the following code: 

using Microsoft.Office.Interop.Excel; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Application app = new Application(); 
     Workbook workbook = app.Workbooks[1]; 
     Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; 
     Range range = worksheet.get_Range("A1", "A5"); 
     FormatCondition condition = range.FormatConditions.Add(
      XlFormatConditionType.xlCellValue, 
      XlFormatConditionOperator.xlBetween, 
      100, 
      200); 
    } 
} 

答えて

0

FormatConditionsインタフェースのためのadd()メソッドは、8つのパラメータではなく、4を持っていますAFAIKには、このタイプのExcel.Extensions名前空間に拡張メソッドはありません。上記の例で拡張メソッドを使用しましたか、または...?

+0

私は最近、Excel interopで作業していませんが、IIRCのAddメソッドのメソッドシグネチャは、Excel interopライブラリのバージョン12の8つのパラメータに変更されました。 Office 2007では、バージョン11からアクセスできます。バージョン11では、署名は4つのパラメータです。バージョン11とのコンパイル(下位互換性のため)では、4つのパラメータを使用する必要がありますが、実際には実行時には機能しません。それは私が経験していたエラーでした。 Gavin Millerのリンクに示されているように反射を使用して問題を解決しました。 –

関連する問題