繁体   English   中英

Excel自动化功能出现问题

[英]problem with Excel automation function

我正在使用MS Visual Studio 2008在VB.NET中编写一个vsto加载项与一个自动化加载项的组合。该自动化加载项已在excel中激活并在系统中注册。 当您使用调用函数时,基本上自动化插件运行得很好

"=<function-name>(<argument1>;<argument2>;...;<argument-n>)"

通过将其写入Excel单元格或使用functionwizard。

vsto加载项用于通过命令栏按钮启动Windows窗体,用户可以在其中键入所需的参数。 如果用户完成操作,则将在构建的单元格中写入一个字符串,就像上面的示例一样。

我要解决的问题是用户启动excel时,仅使用Windows窗体生成字符串,然后单击“确定”以将其填充单元格,excel会尝试在列表中查找“ =”的功能原因单元格,但找不到它。 最后在单元格中站着Name? ,因为在查找functionwizard-list之后,我的注册函数消失了。(顺便说一句,该加载项仍列在“ extra-> add-ins”下,并且在下一次excelstart之后也会再次加载)

但是以另一种方式,如果用户首先使用functionwizard来获取函数的值,在单元格中每手输入它,或者甚至只是打开functionwizard并在打开后不使用该函数就直接将其关闭,则是由Windows窗体生成的字符串确实有效。

onButtonClick事件执行以下示例代码:

Me.Application.ActiveCell.Value = "=FUNCTION(""value1"";""value2"")"

所以现在我的问题是,当用户刚开始使用字符串生成器时,为什么自动化功能消失了?

一些建议甚至解决方案,我的问题将非常好。

马丁问候

好的,

经过一个星期的搜索和其他代码测试并没有成功,我自己发现了问题的原因。 我不知道excel为什么将功能从列表中排除,但是下面的解释确实可以解决问题。

我在尝试通过代码调用函数时犯了两个错误。 首先是我选择了错误的写入单元格的方法...仅使用“ me.application.activecell.formula”。

第二个也是最重要的原因是真正的原因,整个事情都不起作用。 通过尝试在一个字符串上设置每个参数,分号,方括号等,excel会在计算模式下读取该字符串,并在公式中的分号出现时出现错误。 这导致了comexception(HRESULT:0x800A03EC)表示发生了故障。

excel此时会误读分号,并引发异常。 偶然地,我找到了将分号设置为公式以分隔参数的解决方案。 你只需要写“”,“‘入代码,而不是’;”。

如果我的解决方案可以帮助其他开发人员遇到同样的问题,我感到很高兴。

马丁的问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM