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



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

  • "受保护的视野 - 小心..."和按钮"启用编辑">

  • "安全警告 - 某些活动内容已被禁用。单击以获取更多详细信息"和"启用内容"按钮。

这些是根据我的信任中心设置弹出的预期消息,因为我使用存储在外接程序中的宏和用户定义函数。

我最近遇到的问题是,根据我确认"安全警告"的方式,我得到不同的结果:

a) 如果我单击"启用内容"按钮,那么我的自定义公式会返回 #NAME?在那些包含我的用户定义公式的单元格中出现错误(例如 ufCombineRanges)。 手动重新计算 (F9) 并不能解决问题。 另一方面,如果我选择单元格,编辑它 (F2) 并按 Enter,则公式将计算并在此之后继续正确更新。

按下安全警告"启用内容"按钮后的结果

b) 如果我单击"X"按钮,则我的自定义公式将计算并继续正确更新。

按下安全警告 X 按钮后的结果

在全新的工作表中使用用户定义的公式时,不会发生这种情况。 该问题似乎与按"启用内容"按钮后Excel更新公式的方式有关。

任何想法可能是什么原因,即如何解决?

是否有可以调用的函数,它将更新用户定义的公式,而不是等效的 F9?

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

仅供参考:这是用户定义函数的代码:

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,则可能需要更新所有公式。最简单的方法是将所有"="查找/替换为"=",这有效地更改了所有公式,而无需实际更改它们,但足以使Excel计算单元格。然后保存,您应该不会再遇到问题。