我已经在 Microsoft Excel 2007 电子表格上工作了好几天。我正在使用类似工作表的主模板进行工作,并反复将其复制到新工作表。直到今天,这种情况都没有问题。然而,今天中午情况突然发生了变化,我不知道为什么。现在,每当我尝试复制工作表时,我都会得到大约十个对话框,每个对话框都有不同的名称范围对象(如下所示为“XXXX”),我对每个对话框单击“是”:
您要移动或复制的公式或工作表包含名称“XXXX”,该名称已存在于目标工作表中。要使用此版本的名称吗?
- 要使用目标表中定义的名称,请单击“是”。
- 要重命名公式或工作表中引用的范围,请单击“否”,然后在“名称冲突”对话框中输入新名称。
名称范围对象引用工作表中的单元格。例如,在多个工作表中E6
称为名称范围PRE
(并且一直如此),并且一些公式引用PRE
而不是$E$6
。上面的“XXXX”之一就是这个PRE
。这些名称范围只能在它们出现的工作表中解析。尽管之前在多个工作表中存在相同的名称范围,但以前这不是问题。我想保留我的名称范围。
我的电子表格中发生了哪些变化导致这种行为变化?我回到了以前以这种方式创建的表格,现在复制时也会显示该消息。我尝试了另一台计算机和不同的用户,但到处都看到了相同的行为。我只能得出这样的结论:电子表格中的某些内容发生了变化。这可能是什么?我如何才能恢复旧的行为,即我可以复制具有名称范围的表格而不会收到任何警告?
查看后,Name Manager
我发现被投诉的名称范围出现了两次,一次是 scope Template
,另一次是 scope Workbook
。如果我删除了 scope ,Template
复制时的警告就会消失,但是,我得到了一堆 #REF 错误。如果我删除了 scope Workbook
,一切似乎都正常,复制时的警告也会消失,所以也许这就是答案,但我很担心这次删除会产生什么影响,并且想知道这些范围是如何Workbook
产生的。
删除Workbook
名称管理器范围的条目是否安全?这些条目怎么会在我不知情的情况下出现?
答案1
打开名称管理器,找到被投诉的命名项目,然后删除所有具有范围的项目Workbook
,这样复制表格的问题就会消失,并且公式保持不变。
答案2
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
答案3
这不是一个错误,而是一个警告,表示存在冲突,并提供如何处理的选择
当您复制包含对(通常是工作表范围)命名范围的引用的范围,并且目标工作表上存在相同的名称时,Excel 如何知道您想要在结果中使用哪个名称?
至于发生了什么变化,我建议您检查工作簿中的所有名称,尤其是范围。
名称管理器 -Ctrl-F3
答案4
同样的问题,有 27 个神秘的命名范围。我使用Ctrl+ F3(如另一个答案中所建议的)查看命名范围列表(我从未设置过!)。有很多,因为我已经多次复制工作表选项卡,并且只需单击“是”即可解决该消息。我突出显示并删除了所有命名范围(一次一个小屏幕,无法全选)。下次我尝试复制工作表时,复制成功,没有出现警告消息。
在尝试此操作之前,请确保复制原始文件。