用户定义的函数显示#NAME?工作簿启动时出错

时间:2016-06-02 18:50:00

标签: excel-vba excel-2010 vba excel

我在Excel 2010中有一个用户定义的函数,它查看一系列数据并对其求和(实际代码与此问题无关)。它通常可以正常工作,除非我第一次更改源代码或打开工作簿。发生这种情况时,使用UDF的每个单元只有一个#NAME?而错误。

我尝试使用工具按钮重新计算,按F9,然后在另一个单元格中输入公式并按Enter键。

使它工作的是选择任何UDF单元格,单击公式栏,然后按Enter键(即不做任何更改),然后它们都正确计算。 ALSO的工作原理是进入源代码,进行简单的更改(例如在任何模块中添加空行),然后使用前面提到的任何方法触发重新计算事件。

当我加载工作簿时,最初会禁用宏,直到我单击“启用”按钮。此时,之前保存的值会转换为#NAME吗?错误。看起来它与此有关,但我没有权限永久允许我工作的宏,如果另一个用户在他的帐户上打开它,他将遇到我现在遇到的同样的问题。

有没有人见过这个?有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我的一个宏发生了类似的问题,它会从一个范围复制信息并将其粘贴到一个表格中。由于我的情况下的表由序列号组成,所有序列号都包含1或2,所以我将以下位添加到sub中,以便错误消失:

    With .DataBodyRange
        .Replace What:="1", Replacement:="1"
        .Replace What:="2", Replacement:="2"
    End With

你可以在Worksheet_Activate函数中添加类似内容...我知道,它不是真正的"真实的"回答,而只是解决问题,但它确实完成了工作。希望有人可以提供更好的解决方案,我们都可以学到一些东西。