删除GAS

时间:2016-07-30 11:26:22

标签: google-apps-script google-sheets

我已经在工作表中定义了一些我后来删除的命名范围。之后,范围保留在侧栏“数据 - >命名范围...”中,范围为“#REF”。我想删除它们,因为我不希望它们累积。

它们未列在SpreadsheetApp.GetActiveSpreadsheet.getNamedRanges()

如何以编程方式删除它们?

另一种解决方案是如何定义删除工作表时删除的命名范围。如果您在一个重复的工作表中有一个命名范围,则会发生这种情况 - 命名范围的名称类似于“'Sheet1Copy'!RangeName”,但是无法定义这样的名称。

2 个答案:

答案 0 :(得分:2)

使用removeNamedRange(name)删除命名范围。它甚至可以使用#REF命名范围!作为范围,SpreadsheetApp.getActiveSpreadsheet().getNamedRanges()不会返回。

为了便于使用#REF维护您的电子表格不受命名范围的影响!作为范围,保留命名范围的列表。您可以使用辅助电子表格。

答案 1 :(得分:1)

如果您要删除唯一的命名范围,则可接受的答案很好,但如果您删除多个共享相同名称的范围(即,工作表范围的命名范围与电子表格范围的命名范围),则无法接受

“命名范围”的第一个实例可能将范围限定到整个电子表格,而“工作表”的任何副本(包含原始“命名范围”)将具有“命名范围”,其范围仅限于复制的工作表(例如{{1} },而不是'SheetCopy'!NamedRange

如果要删除其引用不再有效的工作表范围的命名范围,请尝试从“脚本编辑器”运行以下脚本:

NamedRange