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 に答える