2012-09-14 20:31:52 +0000 2012-09-14 20:31:52 +0000
7
7

为什么现在Excel在复制工作表时给我已经存在的名称范围警告?

我在Microsoft Excel 2007电子表格上工作了几天。我从一个主模板一样的表工作,并反复复制到一个新的表。直到今天,这种情况一直在发生,没有任何问题。然而,在今天中间,这种情况突然发生了变化,我不知道为什么。现在,每当我尝试复制一个工作表时,我都会得到大约十个对话框,每个对话框都有不同的名称范围对象(如下图所示为'XXXX'),我对每个对话框都点击是。

你想移动或复制的公式或工作表包含名称'XXXX',它已经存在于目标工作表中。您是否要使用该名称的这个版本?

  • 要使用目标工作表中定义的名称,请单击 “是"。
  • 要重命名公式或工作表中提及的范围,请单击 "否",并在 "名称冲突 "对话框中输入新名称。

名称范围对象指的是工作表中的单元格。例如,E6在多个工作表上被称为名称范围PRE(一直以来都是),一些公式引用PRE而不是$E$6。上面的一个'XXXX'就是这个PRE。这些名称范围应该只在其出现的表内解决。尽管之前在多个工作表上存在相同的名称范围,但这不是一个问题。我想保留我的名称范围。

我的电子表格有什么变化会导致这种行为的改变?我已经回到之前以这种方式创建的工作表,现在它们在复制时也给出了这个消息。我尝试了不同的电脑和不同的用户,但到处都是同样的行为。我只能断定电子表格中的某些东西发生了变化。这可能是什么原因,我怎样才能恢复到以前的行为,即我可以复制带有名称范围的工作表而不会收到任何警告?

Name Manager中,我看到被抱怨的名称范围显示了两次,一次是范围Template,另一次是范围Workbook。如果我删除范围Template,警告在复制时就会消失,但是,我得到一堆#REF错误。如果我删除了 scope Workbook ones,一切看起来都很好,复制时的警告也消失了,所以也许这就是答案,但我很紧张这种删除会有什么影响,并且想知道 Workbook ones 是如何出现的。

直接删除Workbook名称管理器范围内的条目会不会安全,这些怎么会在我一开始不知道的情况下出现?

答案 (6)

6
6
6
2012-09-14 20:51:03 +0000

打开名称管理器,找到被投诉的命名项,将范围为Workbook的项全部删除,复制单子的问题就消失了,公式依然保持不变。

5
5
5
2014-07-11 09:59:53 +0000
Sub TOOLS_DELETENAMEDRANGE()

  Dim nm As name
  On Error Resume Next

  For Each nm In ActiveWorkbook.Names
    If (MsgBox("Delete name- " & nm.name, vbYesNo) = vbYes) Then  
      nm.Delete
    End If
  Next

  On Error GoTo 0

End Sub
2
2
2
2012-09-14 20:52:04 +0000

当你复制一个包含引用(通常是工作表范围)命名范围的范围,并且该名称存在于目标表上时,Excel如何知道你想在结果中使用哪个名称?

至于是什么改变了,我建议你检查一下工作簿中的所有名称,尤其是范围。
名称管理器 - Ctrl-F3

1
1
1
2013-11-04 08:47:47 +0000

这些名称大多是通过第三方API下载数据的结果。API通常使用这些名字作为单元格引用的占位符。

一旦你处理了一些数据,这些名字大多会被留下,因为一般用户不会清理隐藏(或非常隐藏)的表。与这些名称相关的困难是,它们也不会显示在NAMES框中,因此无法通过该选项删除。

我的一个方法是通过VBA脚本来编程。下面的例子

Sub do_loop_names()
Dim vJunkName As Name
Debug.Print ThisWorkbook.Names.Count

For Each vJunkName In ThisWorkbook.Names
    vJunkName.Delete
Next vJunkName
End Sub

请注意,这个脚本将删除工作簿中的所有名字,所以如果你想保留某些定义的名字,请在代码中加入例外。

如果有人有更有效的解决方案,请告诉我。

0
0
0
2015-02-20 22:03:14 +0000

我也遇到了同样的问题,并尝试了每一种解决方案,但成功率各不相同。

1) 我打开 “名称管理器",果然有一堆我从未创建过的名称;然而,它们并不是我被警告的名称。我还是删除了它们,以摆脱杂乱无章的状态,但这并不是解决问题的办法。

2) 我尝试了Viquar提供的代码(开始 "Sub do/loops/names")。我认为部分代码被遗漏了,因为我看不出它实际上是如何做的,而且,肯定的是,什么都没有发生。

3) 我尝试了user345338提供的代码(以 "Sub TOOLS/_… "开头)–完美。它引导我查看了所有隐藏的名字,不知为何卡在工作簿中,并删除了它们。非常感谢你,user345338(不管你是谁!)。

顺便说一下 "codea”–user345338的代码并非 “无用",因为它解决了我的问题。

0
0
0
2013-07-01 18:49:58 +0000

同样的问题,这里有27个神秘的命名范围。我使用Ctrl+F3(如另一个答案中推荐的那样)来查看命名范围的列表(我从未设置过!)。有很多,因为我一直在复制工作表选项卡多次,只是点击 “是 "来绕过消息。我高亮显示并删除了所有的命名范围(一次一个小屏幕,不能选择全部)。下一次我尝试复制工作表时,复制成功了,没有出现警告信息。

在尝试之前,一定要复制你的原始文件。