我不知道如何在 VBA 中处理 XLOPER 类型变量。有很多网页解释了 Xloper 变量、c++ DLL和XLL 插件之间的关系,但是我需要在没有 XLL 框架的情况下在一个将 xloper 直接返回到 VBA 的 dll 中编写 c++ 函数。(不需要用户定义函数,因为来自 dll 的函数将由 VBA 代码调用 - 而不是由 Excel 用户调用)。
事实上,我正在编写一个 Excel VSTO,我需要从中调用 c++ 代码。我发现 xloper 变量对 XLL 非常有用,所以我想直接在 VBA/VB.Net 中使用这个变量类型。那么有可能吗?
- 我猜 xloper 可以使用变体类型来处理,但我不知道如何处理。我找到了这篇文章:我如何在 XLOPER 和 VARIANT 之间进行编组? 但没有明确的答案。
编辑 :
抱歉,如果我不清楚,例如,我让这个 c++ 函数从 excel 接收 Int 并返回相同的值加上 5 作为 xloper variale 到 excel。
_declspec(dllexport) xloper _stdcall returnInt( int iVal)
{
xloper pxlval_ret;
int a ;
a =5 + iVal;
pxlval_ret->xltype = xltypeInt;
pxlval_ret->val.w = a ;
return pxlval_ret;
}
但我不知道如何在 vba 中调用它,返回变量是 VARIANT 吗?