返回數組我是新書面XLL,任何人都知道如何將一個6x1的陣列返回到Excel?如何從XLL功能
以下是我的函數(一些代碼從其他此帖一):
__declspec(dllexport) LPXLOPER12 WINAPI GetArr(char* arg1, char* arg2)
{
vector<double> arr = functionReturnVector;
XLOPER12 list;
list.xltype = xltypeMulti | xlbitDLLFree;
list.val.array.lparray = new XLOPER12[6];
list.val.array.rows = 6;
list.val.array.columns = 1;
for(int i = 0; i < 6; ++i) {
list.val.array.lparray[i] = arr[i]; // error: IntelliSense: no operator "=" matches these operands
}
return &list;
}
[2013年2月23日] 目前我從XLL RETURN ARRAY讀碼和審查我的代碼,它可以編譯,但回報0 ...
__declspec(dllexport) LPXLOPER12 WINAPI GetArr(void)
{
XLOPER xlArray, xlValues[2];
xlValues[0].xltype = xltypeNum;
xlValues[1].xltype = xltypeNum;
xlValues[0].val.num = 11;
xlValues[1].val.num = 17;
xlArray.xltype = xltypeMulti|xlbitDLLFree;
xlArray.val.array.rows = 1;
xlArray.val.array.columns = 2;
xlArray.val.array.lparray = &xlValues;
return &xlArray;
}
我不知道關於XLL什麼,但「清單」是一個局部變量首先的。你不能返回指向局部變量的指針。第二個arr [i]的類型爲,當list.val.array.lparray [i]具有類型時(您剛完成了幾行新的XLOPER12 [6])。 –
user928204
2013-02-22 09:35:58
可能是重複的問題 - [見這裏] [1] [1]:http://stackoverflow.com/questions/14301998/how-to-return-an-array-from-an-xll -udf – 2013-02-22 09:59:03
是的我已閱讀這篇文章,但代碼仍然無法正常工作。 – hkdeveloper758 2013-02-22 10:04:36