2012-01-09 12 views
0

Excelの組み込み関数=SUM()が何らかの理由でカスタムUDFによって作成された結果を本当に集計できないのがわかりません。それは常に0で終わるようです。Excelの組み込み関数をUDFの上に使用する

例えば、myUDFと呼ばれる次のUDFがあります。これはアイテムの数を返します。
式:=myUDF('ItemA')結果:セルB1については10


式:=myUDF('ItemB')結果:セルA1については

は、だから私は=Sum(A1:B1)を行うと、セルに数式を入れC1代わりに25ではなく0を返します。

私はいくつかのデータ書式設定用のもの(数字に変換)を使用しようとしましたが、そこにはまだ運がありません。誰もここに似た問題があったのですか?それの原因に関する任意のアイデア?

ありがとうございました。

EDIT

: コードサンプル

 public object MyUDF(string id, string pk, string param1 = "", string param2 = "", string param3 = "", string param4 = "") 
     { 
      object result = null; 
      string strFormula; 

      double n = 0; 
      DateTime dt; 

      try 
      { 
       strFormula = buildFormula(id, pk, param1, param2, param3, param4); 

       result = ws.getServiceResultsDataString(id, objUser, pk, param1, param2, param3, param4); 

       if (double.TryParse(result.ToString(), out n)) 
       { 
        result = n; 
       } 
       else if (DateTime.TryParse(result.ToString(), out dt)) 
       { 
        result = dt.Date; 
       } 
       ws.Dispose(); 
       objUser = null; 

      } 
      catch (Exception ex) 
      {    
      } 
      finally 
      { 
      } 
      return result; 
     } 

答えて

2

はあなたのUDFはまたは数字を含むように起こる文字列を返していますか? (文字列として書式10)

私は'10でExcelや種類に入る場合と'15(15、文字列としてフォーマット)、およびSUM()それらIば、私は0

を取得タイプ10とタイプ15(数値としてフォーマットされています)とSUM()それらを得るには、私は25を取得します。

問題を再現するいくつかのコード例では、私たちは確かに答えることができます。

+0

うん、良い点。 Excelで文字列値を数値に変換する方法はありますか? – woodykiddy

+1

はい、VALUE関数 –

+0

あなたのUDFが文字列ではなくIntまたはDoubleを返すだけであれば、それは必要ではありません。 –

関連する問題