我做了一个XLL+用户定义函数sum1,添加这个插件后,它可以在Excel中流畅运行。但现在我正在构建另一个 XLL,比如 sum2。我希望我可以在 sum2 中调用 sum1。由于 sum1 和 sum2 位于不同的 XLL 中,因此不能直接调用它们,需要一些代码来执行此操作。以前有没有人遇到过这个问题以及有什么好的方法呢?
我用谷歌搜索了这个问题并找到了下面的代码,这是由评估和 UDF 函数完成的。但似乎代码很旧,适用于 Visual Studio 2005,但不适用于 2012,运行时会出现 #Name 错误。
如果有人可以帮助我,我将不胜感激。非常感谢。
// Function: CalDaysInYear2
// Purpose: Calls a function in another XLL
//{{XLP_SRC(CalDaysInYear2)
// NOTE - the FunctionWizard will add and remove mapping code here.
// DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN2(CalDaysInYear2, "RI", "CalDaysInYear2",
"DayCount", "Date & Time", "Calls a function in another XLL,"
" which returns number of days in a year according to the"
" day count", "Day count convention\000", "\0appscope=1\0",
1)
extern "C" __declspec( dllexport )
LPXLOPER CalDaysInYear2(short DayCount)
{
XLL_FIX_STATE;
CXlOper xloResult;
//}}XLP_SRC
static int xlfEvaluate = 257;
static int xlUDF = 255;
CXlOper xloName, xloRef;
int rc = 0;
xloName = "CalDaysInYear";`enter code here`
if (!rc)
rc = xloRef.Excel(xlfEvaluate, 1, &xloName);
if (!rc)
rc = xloResult.Excel(xlUDF, 2, &xloRef, &CXlOper(DayCount, 0));
return xloResult.Ret();
}