2017-05-29 10 views
0

私はproyectで作業しており、書式設定条件でExcelを生成する必要があります。 (例:B2 = "正しい値")、値が2つの値の間にあるかどうかをチェックする必要があります(例: "2 < B2 < 4")私はこのコードを持っています:C#でプログラム間で値間のExcel行を書式設定する

FormatCondition[] format = new FormatCondition[datos.Length]; 
      Microsoft.Office.Interop.Excel.Range[] cells = new Range[datos.Length]; 
      for (int i = 1; i < datos.Length; i++) 
      { 
       string condition = ""; 
       if (qTipo[i - 1] == "Num" && qMax[i - 1] != "" && qMin[i - 1] != "") 
       { // DOES NOT WORK 
        condition = $"=Y(B{i + 1}<{qMax[i - 1]};B{i + 1}>{qMin[i - 1]})"; // THIS RETURNS "=Y(B4<6;B4>4)" 
        format[i] = (FormatCondition)(xlWorksheet.get_Range($"B{i + 1}", 
        Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression, Type.Missing, 
        condition)); 
       } 
       else 
       { //WORKS 
        condition = $"=B{i + 1}=\"{qCorrecto[i - 1]}\""; // THIS RETURNS "=B2="Correct Value"" 
        format[i] = (FormatCondition)(xlWorksheet.get_Range($"B{i + 1}", 
        Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression, Type.Missing, 
        condition)); 
       } 
       format[i].Interior.Color = 0x0000FF00; 
       datos[i] = new String[2]; 
       datos[i][0] = qPregunta[i - 1]; 
       datos[i][1] = ""; 
      } 

このコードを実行すると、Add文に「無効な引数の例外」が表示されます。

メルシ、 ミゲル。

答えて

0

私のスーパーインテリジェンスのおかげで、私はこの問題を解決することができました。私が必要としたコードは:

format[i] = (FormatCondition)(xlWorksheet.get_Range($"B{i + 1}", Type.Missing).FormatConditions.Add(XlFormatConditionType.xlC‌​ellValue, XlFormatConditionOperator.xlBetween, $"={qMax[i - 1]}", $"={qMin[i - 1]}"));

関連する問題