删除具有命名范围的工作表时出现奇怪的Excel错误?

时间:2013-05-09 21:46:18

标签: excel vba excel-vba

我有一个excel工作簿,其中包括2个badkheets,wkshtA和wkshtB。它们都有本地命名范围(每个命名范围的范围只是父工作表)。 wksht B中的某些单元格引用A中的命名范围,但A引用中没有一个单元格在B中命名。

我有一个宏,可以在同一个工作簿中创建每个工作表的副本。这很好。

问题是,当我删除工作表A时,我的名称管理器有一堆#ref错误,其中包含工作表A上的所有名称,但每个名称的范围已更改为“工作簿”。但是,只有在删除工作表B之前删除工作表A时才会发生这种情况。如果我以相反的顺序删除它们,则A中的所有命名范围都将被删除。

另一个奇怪的事情是,如果我删除A,然后删除所有#ref错误,然后删除B,然后运行创建新副本的宏,然后再次删除A,#ref错误不再出现。

我很难过......有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

原来问题是我从B到A定义引用的方式。例如,我在A中的范围和B中的范围都命名为“Premium”。我有一段代码说

worksheets("B").range("Premium").formula = "='A'!Premium"

这实际上工作正常,但是当我删除工作表A时,命名范围没有删除。将公式定义更改为

worksheets("B").range("Premium").formula = "='A'!" & worksheets("A").range("Premium").address

做了这个伎俩