我有一组用户定义的vba函数,它们位于excel模块中,然后从excel电子表格中调用......此时一切正常。
我被要求将vba从模块移动到工作表的代码页。当我这样做时,我发现我不能从工作表上的单元格中调用任何函数......名称根本不显示为现有。有没有办法从Excel单元格调用工作表函数?此外,是否有任何问题从另一个模块或工作表代码中的用户定义函数调用工作表函数?
编辑:
我发现如果我通过sheetname.functionname调用,它会抛出一条错误消息,其中包含“名称与Excel内置名称冲突或工作簿中另一个对象的名称”...如果我在哪里使用sheetname.anythingelse它只是解析为#NAME?
这是否意味着无法从工作表中调用excel工作表函数?
答案 0 :(得分:7)
没有。无法从工作表中将函数作为用户定义的函数调用。
Worksheet对象用于响应工作表上发生的事件。您不能在那里放置用户定义的函数。用户定义的函数必须存在于模块中。
如果您的用户定义的函数存在于模块中,则在其他任何地方的代码中调用它都不会有任何问题...包括在工作表“代码隐藏”中。
答案 1 :(得分:4)
您必须将代码放在标准模块中。 点击此链接。