我正在处理一个简单的XLL插件并尝试使用常规double *(而不是FP或OPER)来获取输入,因为根据我的理解,Excel应该使用常规C数据类型。经过多次修改后,我无法使其工作,现在它只返回我最后一个单元格中的值。我做错了什么?\
static AddIn xai_array_try(
"?xll_array_try", XLL_DOUBLE XLL_DOUBLE_,
"ARRAY.TRY", "Array",
"STL", "Test Sum Array."
);
double WINAPI xll_array_try(const double *arr) {
#pragma XLLEXPORT
int i;
double sum = 0;
int size = 3;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
如果我将其作为FP或OPER获取,我是否可以将其传递给将输入作为数组的函数?
答案 0 :(得分:1)
根据this
计算出来我的插件输出错误,我的功能输入错误。
static AddIn xai_array_try(
"?xll_array_try", XLL_DOUBLE "O%",
"ARRAY.TRY", "Array",
"STL", "Test Sum Array."
);
double WINAPI xll_array_try(int *rows, int *columns, double *arr) {
#pragma XLLEXPORT
int i;
double sum = 0;
int size = *rows * *columns;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}