用命名区域删除表格时奇怪的Excel错误?

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

我有一个macros在相同的工作簿中创build每个工作表的副本。 这工作正常。

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

另一个奇怪的是,如果我删除A,然后删除所有#ref错误,然后删除B,然后运行制作新副本的macros,然后再次删除A,#ref错误不会再出现。

我很难过…有什么想法? 谢谢。

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

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

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

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

做的伎俩