이 질문은 Excel에서 추가 기능을 호출하는 Excel-DNA의 해석에 대한 것입니다.Excel-DNA를 사용하면 Excel 추가 기능 함수에서 지정되지 않은 인수를 누락 된 함수와 구별 할 수 있습니까?
Excel의 경우 지정되지 않음 및 누락시 인수가 동일하지 않습니다. 이것은 (이 필요한 하나 개의 선택적 매개 변수 다음 매개 변수가)이 IF
함수로 볼 수 있습니다 :
=IF()
를 - 0을 반환
- FALSE
=IF(,,)
을 반환 -이
=IF(,)
유효하지 않습니다 Excel 내에서 추가 기능을 등록하는 데 메서드를 사용하고 다음과 같은 함수를 등록합니다.
Delegate del = new Func<object, object, object, object>((a, b, c) => a.ToString() + " " + b.ToString() + " " + c.ToString());
var fnAttr = new ExcelFunctionAttribute { Name = "TestFunc", Category = "ExcelDnaTest", Description = "Test function", IsHidden = false };
var args = new List<object>();
args.Add(new ExcelArgumentAttribute { Name = "Arg1", Description = "First argument", AllowReference = true });
args.Add(new ExcelArgumentAttribute { Name = "Arg2", Description = "Second argument", AllowReference = true });
args.Add(new ExcelArgumentAttribute { Name = "Arg3", Description = "Third argument", AllowReference = true });
ExcelIntegration.RegisterDelegates(new List<Delegate> { del }, new List<object> { fnAttr }, new List<List<object>> { args });
이 모든 인수가 공급 될 때 예상대로 작동합니다
=TestFunc("A", "B", "C")
- 반환 그러나 "A B의 C"
, 그 결과를 인수하기위한 (즉,
=TestFunc()
=TestFunc(,)
=TestFunc(,,)
이 수익의 모든 :
"ExcelDna.Integration.ExcelMissing ExcelDna.Integration.ExcelMissing ExcelDna.Integration.ExcelMissing"Excel의 IF
기능과 유사 추가 기능에 대한
,이 세 가지 공식은 다른 함수 호출을 나타냅니다,하지만 난 방법을 찾을 수 없습니다 - Excel-DNA는 에 대해 Missing
값을 지정하지 않았으며 및 에 인수가 없음을 나타냅니다.
Q : Excel-DNA를 사용하면 위의 TestFunc()
세 번 호출을 어떻게 구별 할 수 있습니까?
감사합니다. @Govert, 알아두면 도움이됩니다. –