Excel VBA“公式”函数

Posted

技术标签:

【中文标题】Excel VBA“公式”函数【英文标题】:Excel VBA "formula" function 【发布时间】:2014-06-19 20:07:47 【问题描述】:

Excel VBA 公式函数有问题。我希望我的 VBA 子程序在单元格中生成以下公式:

=VLOOKUP(C5;data!J6:K611;2;TRUE)

为此,我使用了以下 VBA 行:

Sheets("test").Cells(1, 1).Formula = "=VLOOKUP(C5;data!J6:K611;2;TRUE)"

这会导致错误:“运行时错误 1004:应用程序定义或对象定义错误”

如果我使用以下语句,然后在公式前面手动添加“=”,则函数运行良好:

Sheets("test").Cells(1, 1).Value = "VLOOKUP(C5;data!J6:K611;2;TRUE)"

我做错了什么?

【问题讨论】:

原则上,这应该可以正常工作。要获得更多信息,请在电子表格中手动输入公式,并在即时窗口中调查属性 Formula 的值。或许你会发现其中的不同。 【参考方案1】:

我认为分隔符的转换发生在电子表格而不是 VBA 中 - 您需要 , 而不是 ;

请尝试:

Sheets("test").Cells(1, 1) = "=VLOOKUP(C5,data!J6:K611,2,1)"

【讨论】:

这确实解决了这个问题。所以一般来说,在 VBA 中,函数的所有参数都应该用逗号分隔。仅当使用 VBA 将函数放置在 Excel 单元格中时,这些逗号才会由 Excel 转换为“;”。这是正确的吗?

以上是关于Excel VBA“公式”函数的主要内容,如果未能解决你的问题,请参考以下文章

excel vba函数返回数组并粘贴到工作表公式中

通过用户定义的函数VBA缩短excel公式

使用公式将数组从 VBA 函数输出到 Excel 工作表

EXCEL VBA 函数Msgbox应用

在 Excel 公式中调用 VBA 类模块

Excel VBA 函数失败,但公式在工作表中有效