gpt4 book ai didi

excel - 删除值为 '#NAME?' 或引用 '=#NAME?' 的命名范围

转载 作者:行者123 更新时间:2023-12-04 17:32:26 26 4
gpt4 key购买 nike

无法使用#NAME 删除命名范围?

如何添加到我的 VBA 以删除它?

我创建了下面的代码,它删除了我的工作簿中除一个之外的所有命名范围,详细信息是:

名称:_xlfn.IFERROR值(value):#NAME?指的是:=#NAME?

'Delete All Named Ranges
Dim xName As Name
On Error Resume Next
For Each xName In ActiveWorkbook.Names
xName.Visible = True
If InStr(1, xName.RefersTo, "=#NAME?") > 0 Then xName.Delete
If InStr(1, xName.RefersTo, "#REF!") > 0 Then xName.Delete
If InStr(xName.Value, "#REF!") > 0 Then xName.Delete
xName.Delete
Next xName
On Error GoTo 0
End Sub```

最佳答案

诀窍是 xName.RefersTo 将显示原始公式而不是评估值,例如=SomeFormulaThatDoesntExist 而不是 #NAME?

enter image description here

您可以通过使用 Evaluate(xName.RefersTo) 来克服它,它将为 #NAME? 错误返回 Error 2029。此外,您可以简单地将 IsError(Evaluate(xName.RefersTo)) 条件添加到您的代码中,例如:

If IsError(Evaluate(xName.RefersTo)) Then xName.Delete

关于excel - 删除值为 '#NAME?' 或引用 '=#NAME?' 的命名范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com