2012-04-23 93 views
2

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

我有一个限制是我不能将单元格范围作为参数传递给这些函数。相反,我应该能够使用严格的值。

我希望能够使用下面的表达式SUM(1,2),它应该返回3,而下面的版本SUM(“A1:A2”)不适用于我。

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

那么,任何人都可以给我一个使用内置函数接收值的列表(不只是单元格范围)的例子吗?

我试过下面的代码,但由于某些未知的原因,我一直无法得到它的工作(我一直得到1004错误,说:不能运行宏'SUM'。宏可能不可用该工作簿或所有宏可能会被禁用)。

Application.Run "SUM", 2, 2 

一些有价值的建议,这将有助于找到解决这个问题,将不胜感激。

+2

'一些有价值的建议,这将有助于....'有在Excel中一个神奇的钥匙。令人惊讶的是,你可以从Worksheet和VBA编辑器中按下它:)关键是'F1' – 2012-04-23 15:47:51

+0

@SiddharthRout在宏编辑器中推F1会让你进入一个网页,说F1无法正常工作。 – Crashworks 2016-03-05 04:38:32

回答

3

要使用一个内置的,Excel中,工作表功能,你需要做类似如下:

Application.WorksheetFunction.Sum(2,2) 
+0

好的,如果我说功能名称和参数客户端从另一端发送给我,你怎么说?我的客户端可以将函数名作为字符串和参数发送给范围或数组。好吧,我可以使用反射,但我不确定在WorksheetFunction中实现了所有功能。和f.e.如果smb给我发送“Len”函数,我该怎么办? – nhusnullin 2012-04-24 08:27:24

+0

对不起,我不知道你的意思,但我们似乎已经解决了你原来的问题。 – markblandford 2012-04-24 14:18:07