Как определить ссылку на пустую ячейку с помощью Excel-DNA? - PullRequest
0 голосов
/ 11 марта 2020
     //when the following line encounters a reference to
     //an empty cell, the method returns #VALUE

'' '' double val = dataRange [0]; возврат val; '' ''

[ExcelFunction(IsMacroType = true)]
public static object getVal([ExcelArgument(AllowReference = true)] double[] dataRange)

1 Ответ

0 голосов
/ 11 марта 2020

Объявляя аргументы функции как double (или double[]), вы можете иметь только допустимые значения double.

Если вам нужно проверить специальные значения, такие как ExcelEmpty вам нужно объявить аргументы вашей функции как object (или object[]).

например

[ExcelFunction(IsMacroType = true)]
public static object getVal([ExcelArgument(AllowReference = true)] object[] dataRange)
{
    if (dataRange[0] == ExcelEmpty.Value)
    {
        // ...
    }

    // ...
}

Если вы предпочитаете получать значения через ExcelReference затем объявите ваш входной аргумент как object и проверьте, является ли он ExcelReference.

например

[ExcelFunction(IsMacroType = true)]
public static object getVal([ExcelArgument(AllowReference = true)] object input)
{
    if (input is ExcelReference reference)
    {
        // ...

        var value = reference.GetValue();

        // ...
    }

    // ...
}
...