【问题标题】:Executing build-in functions from VBA (Excel)从 VBA (Excel) 执行内置函数
【发布时间】:2014-05-01 17:41:56
【问题描述】:

我需要能够从 VBA (MS Excel) 执行任何类型的内置函数(例如“sum”或“len”)。

我的一个限制是我不能将单元格区域作为参数传递给这些函数。取而代之的是,我应该能够使用严格的值。

我希望能够使用应该返回 3 的以下表达式 SUM(1, 2),而以下版本 SUM("A1:A2") 对我不起作用。

我设法开发了一些函数来解析我之前的输入并使其包含一个值列表(例如上面的例子,它使用户输入的 'A1:A2' 看起来像一个由两个值组成的数字数组)。

那么,谁能给我一个使用内置函数接收值列表(不仅仅是单元格范围)的示例吗?

我尝试了以下代码,但由于某种未知原因,我无法使其正常工作(我一直收到 1004 错误,说:无法运行宏“SUM”。宏可能在此不可用工作簿或所有宏都可能被禁用。):

Application.Run "SUM", 2, 2

我们将不胜感激一些有助于找到解决此问题的宝贵建议。

【问题讨论】:

  • Some valuable advices that would help .... Excel 中有一个神奇的键。令人惊讶的是,您可以从 Worksheet 和 VBA 编辑器中按下它 :) 关键是 F1
  • @SiddharthRout 在宏编辑器中按 F1 只会将您带到一个网页,说 F1 不起作用。

标签: excel vba evaluate


【解决方案1】:

要使用内置的 Excel 工作表功能,您需要执行以下操作:

Application.WorksheetFunction.Sum(2,2)

【讨论】:

  • 好的,如果我说函数名和参数客户端从另一端发送给我,你会怎么说?我的客户,可以将函数名作为字符串发送给我,并将函数的参数作为范围或数组发送给我。好的,我可以使用反射,但我不确定所有函数都在 WorksheetFunction 中实现。和 f.e.如果 smb 给我发送函数“Len”我该怎么办?
  • 抱歉,我不明白您的意思,但我们似乎已经解决了您最初的问题。
猜你喜欢
  • 1970-01-01
  • 2020-05-10
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多