1

我正在开发一个简单的 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 获得,我是否能够将其传递给将输入作为数组的函数?

4

1 回答 1

1

按照这个算出来的

我的插件输出错误,我的函数输入错误。

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;
}
于 2014-09-18T09:47:23.590 回答