首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xlfEvaluate的XLL问题

xlfEvaluate的XLL问题
EN

Stack Overflow用户
提问于 2015-02-07 20:33:27
回答 1查看 304关注 0票数 1

我在一个用XLL编写的非常简单的函数中遇到了这个问题,使用的是VS2012。我试着阅读了MSDN和Steve Dalton的书,但我看不出我做错了什么。棘手的一点是,我需要我的函数来读取工作表单元格中的值,而不是调用它的单元格。该函数不接受任何参数,并返回一个整数。我已经将它声明为J# (#表示它可以像Dalton...although建议的那样调用XLM功能,如果没有#,我仍然会遇到同样的问题)。我没有声明我的函数以节省空间,但它很简单,我不认为它是问题的原因。

这第一段代码运行得很好。我写这篇文章只是为了建立信心。

代码语言:javascript
复制
//This block works correctly. A trial copied from the old Excel 97 documentation
XLOPER12 xlInput1, xlOutput2;
/* Evaluate the string "2+3" */
xlInput1.xltype = xltypeStr;
xlInput1.val.str = L"\0032+3";  //prefix with string length in Octal
Excel12(xlfEvaluate, &xlOutput2, 1, (LPXLOPER12) &xlInput1); 
//works OK, and xlOutput2 contains 5

但是第二个块不起作用。我看不出原因。我正在尝试从一个单元格中读取值,该单元格与调用函数的单元格不同。我得到的是一个返回XLOPER12,其中包含一个错误(xltypeErr)和val.num字段中的垃圾值(工作表单元格确实包含一个整数值)。

代码语言:javascript
复制
//This block does not work
XLOPER12 xlInput3, xlOutput3;
/* Look up the name Tst on the active sheet called Sht */
xlInput3.xltype = xltypeStr;
xlInput3.val.str = L"\003Tst";  //this also gives problems regardless of whether the string is defined as \004!Tst or \007Sht!Tst
Excel12(xlfEvaluate, &xlOutput3, 1, (LPXLOPER12) &xlInput3);  //xlOutput3 now has a type of xltypeErr, rather than the correct integer value on the worksheet

你能解释一下哪里出了问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-10 22:07:23

如果您试图从一个与调用函数的单元格不同的单元格中读取值,则需要一个参数来引用那个不同的单元格。例如,在A1中,您可以使用'=myfunc(A2)‘。然后,您的C++扩展函数需要声明为'JP#',P对应于A2单元格引用参数。如果Excel可以解析“A2”引用,它将根据A2的内容传入一个XLOPER,并将该值作为xltypeNum、xltypeInt或xltypeStr。如果没有,你可能会得到一个xltypeSRef。

xlfEvaluate:这是MS文档https://msdn.microsoft.com/en-us/library/office/bb687913(v=office.15).aspx

请注意,MS指定传递给xlfEvaluate的字符串必须“只包含函数,而不是命令等价物”。我怀疑L"\003Tst“不对应于您的Excel已知的任何函数。在我的Excel 2013中没有名为Tst的内置函数。你可能有一个插件,它提供了一个名为Tst的函数,但我猜不是。因此,尝试将xlInput3.val.str更改为L"\006RAND()“,看看会发生什么情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28382162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档