2016-07-30 6 views
3

Ich habe einige benannte Bereiche in einem Blatt definiert, das ich später lösche. Danach bleiben die Bereiche in der Seitenleiste "Daten-> Benannte Bereiche ..." mit dem Bereich "#REF". Ich möchte sie löschen, weil ich nicht möchte, dass sie sich anhäufen.Entfernen ungültiger benannter Bereiche in GAS

Sie sind nicht in SpreadsheetApp.GetActiveSpreadsheet.getNamedRanges() aufgeführt.

Wie kann ich sie programmatisch löschen?

Eine alternative Lösung wäre, wie man einen benannten Bereich definiert, der entfernt wird, wenn ein Blatt gelöscht wird. Dies passiert, wenn Sie einen benannten Bereich in einem Blatt haben, das dupliziert wird - der benannte Bereich hat einen Namen wie "'Sheet1Copy'! RangeName", aber es ist nicht möglich, einen Namen wie diesen zu definieren.

+1

Der Befehl ist falsch geschrieben. Die richtige Schreibweise lautet: 'SpreadsheetApp.getActiveSpreadsheet(). GetNamedRanges()' –

Antwort

2

Verwenden Sie removeNamedRange(name), um einen benannten Bereich zu entfernen. Es funktioniert sogar mit Named Ranges, die #REF hat! als Bereich und werden nicht von SpreadsheetApp.getActiveSpreadsheet().getNamedRanges() zurückgegeben.

Damit Sie Ihre Tabellen mit #REF frei von benannten Bereichen leichter pflegen können! Als Bereich, behalte eine Liste deiner benannten Bereiche. Sie könnten dafür eine Hilfstabelle verwenden.

+0

Vielen Dank. Ich denke, es ist kein normales Verhalten der 'getNamedRanges()' Funktion. Es werden keine Bereiche mit "#REF" angezeigt, aber sie erscheinen in der Liste der benannten Bereiche, was sehr ärgerlich ist. Gibt es ein offenes Problem, das zu lösen? –

+0

@MaxMakhrov: Ich habe noch keine spezifische Frage zu diesem Thema gefunden. –