1

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

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

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

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

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

4

1 回答 1

1

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

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

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

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

成功了

于 2013-05-09T22:22:53.163 回答