Проще всего позволить вашей функции объявить параметр как тип object[,]
. Затем вы получите массив со значениями из входного диапазона. Ваш код может выглядеть так:
public static object Concat2(object[,] values)
{
string result = "";
int rows = values.GetLength(0);
int cols = values.GetLength(1);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
object value = values[i, j];
result += value.ToString();
}
}
return result;
}
Как правило, вы хотите проверить тип объекта значения и сделать что-то другое в зависимости от этого. Массив object [,], переданный из Excel-DNA, может содержать элементы следующих типов (в зависимости от типа данных значений в соответствующих ячейках):
double
string
bool
ExcelDna.Integration.ExcelError
ExcelDna.Integration.ExcelEmpty
ExcelDna.Integration.ExcelMissing
(если функция вызывается без параметра, например =Concat2()
).