6

我有一组用户定义的 vba 函数,它们位于 excel 模块中,然后从 excel 电子表格中调用......此时一切正常。

我被要求将 vba 从模块移动到工作表的代码页。当我这样做时,我发现我无法从工作表上的单元格中调用任何函数......名称根本不显示为存在。有没有办法从excel单元格调用工作表函数?此外,从另一个模块中的用户定义函数或后面的工作表代码调用工作表函数是否有任何问题?


编辑:

我发现如果我通过 sheetname.functionname 调用,它会引发一条错误消息,其中包括“名称与 Excel 内置名称或工作簿中另一个对象的名称冲突”......如果我使用 sheetname.还有什么它只是解析为#NAME?

这是否意味着无法从工作表中调用 Excel 工作表函数?

4

2 回答 2

7

不可以。工作表对象中的函数不能作为用户定义的函数从工作表中调用。

Worksheet 对象旨在响应工作表上发生的事件。您不能将用户定义的函数放在那里。用户定义的函数必须存在于模块中。

如果您的用户定义函数确实存在于模块中,那么从其他任何地方的代码调用它都不会有任何问题......包括在工作表“代码隐藏”中。

于 2010-12-09T02:23:21.087 回答
4

您必须将代码放在标准模块中。检查此链接。

http://www.cpearson.com/excel/writingfunctionsinvba.aspx

于 2010-12-08T19:55:22.303 回答