如何在Excel中模拟用户定义的函数?

时间:2017-11-10 19:33:25

标签: excel excel-vba excel-formula vba

我收到了.xlsb文件,该文件引用了我没有的第三方添加内容。电子表格使用一个定义的函数来添加片材的某些单元格,并且这些单元格有#NAME?个错误。

我在VBA中定义了具有相同名称和参数的函数。 #NAME?错误仍然存​​在,只有当我“触摸”单元格时它才有效。我的意思是,我复制并粘贴相同的公式。

是否有更优雅的方法来替换(模拟)不存在的函数?

2 个答案:

答案 0 :(得分:2)

绕过#NAME?错误,查找并替换包含具有相同UDF名称的UDF名称的所有公式。

dim myudf as string, w as long
myudf = "=MyUdf("
for w=1 to worksheets.count
    worksheets(w).cells.replace(what:=ucase(myudf), replacement:=lcase(myudf), _
                                matchcase:=false, lookat:=xlPart
next w

答案 1 :(得分:0)

工作簿是否已启用手动计算?如果是这样,请尝试切换到自动(工具>选项>计算)。这可能会迫使它重新计算而不是触摸"每个细胞。