[C#] UDF 위에 Excel 기본 제공 함수 사용


Answers

UDF가 숫자 또는 숫자를 포함 하는 문자열을 리턴합니까?

Excel로 가서 '10 (문자열로 서식이 지정된 10) 및 '15 (문자열로 서식이 지정된 15) 및 SUM ()을 입력하면 0이됩니다.

10과 15 (숫자로 서식 지정) 및 SUM ()을 입력하면 25가됩니다.

문제를 재현하는 일부 예제 코드는 우리가 확실히 대답 할 수있게 해줍니다.

Question

왜 Excel 내장 함수 =SUM() 이 사용자 지정 UDF에 의해 생성 된 결과를 요약 할 수 없는지 이유를 모르겠습니다. 항상 0으로 끝나는 것 같습니다.

예를 들어 myUDF 라는 다음 UDF를 가지고 있는데 이는 항목 수를 반환합니다.

A1 셀의 경우 :
수식 : =myUDF('ItemA') 결과 : 10

B1 셀의 경우 :
수식 : =myUDF('ItemB') 결과 : 15

그래서 =Sum(A1:B1) 하고 C1 셀에 수식을 넣으면 25 대신 0을 반환합니다.

일부 데이터 서식 지정 (숫자로 변환)하지만 여전히 운이 거기에 사용하려고했습니다. 여기에 비슷한 문제가 있었던 사람이 있습니까? 그것의 원인에 대한 아이디어가 있습니까?

감사.

편집 : 코드 샘플

        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;
        }