打开Excel 2013并确认安全警告后,用户定义的公式不会更新

打开Excel 2013工作表后,我收到以下消息:

  • “受保护的视图 – 小心…”和“启用编辑”button

  • “安全警告 – 一些活动内容已被禁用,点击以获取更多详情。” 和“启用内容”button。

这些是根据我的信任中心设置popup的预期消息,因为我使用存储在我的加载项中的macros和用户定义的函数。

我最近遇到的问题是,我得到不同的结果取决于我如何承认“安全警告”:

a)如果我点击“启用内容”button,然后我的自定义公式返回#号? 包含我的用户定义的公式的单元格错误(例如ufCombineRanges)。 手动重新计算(F9)不能解决问题。 另一方面,如果我select单元格,编辑它(F2)然后按回车键,然后公式计算并在那之后继续正确地更新。

按安全警告“启用内容”button后的结果

b)如果我点击“X”button,然后我的自定义公式计算并继续正确更新。

按下安全警告Xbutton后的结果

在全新的工作表中使用用户定义的公式时,这不会发生。 这个问题似乎与Excel按照“启用内容”button之后更新公式的方式有关。

任何想法可能是什么原因,即如何可以解决这个问题?

有没有一个可以调用的函数,它会更新用户定义的公式,而不是相当于F9?

任何帮助/想法,不胜感激。

FYI:这是用户定义函数的代码:

Function ufCombineRanges(Separator As String, ParamArray Ranges() As Variant) As String Application.Volatile Dim i As Long Dim TheRange As Variant For i = LBound(Ranges) To UBound(Ranges) For Each TheRange In Ranges(i) If TheRange.Text <> "" Then OutStr = OutStr & TheRange.Text & Separator End If Next TheRange Next i If Len(OutStr) > 0 Then ufCombineRanges = Left(OutStr, Len(OutStr) - Len(Separator)) Else ufCombineRanges = "" End If End Function 

如果UDF位于链接的工作簿/加载项中,则应该可以编辑链接。更改源或检查状态。

如果UDF在同一工作簿中定义,则可能需要更新所有公式。 最简单的方法是用“=”查找/replace所有的“=”,这样可以有效地改变所有的公式而不用实际改变它们,但是这足以让Excel计算单元格。 然后保存,你不应该再有问题。