Anzeigen des Blattnamens in Google Spreadsheets

39

Gibt es eine Möglichkeit, einen Blattnamen als Ergebnis einer Funktion in einer Google-Tabelle anzuzeigen (genau wie diese Frage , außer in Google Sheets)?

oldrobotsneverrust
quelle
Bitte sehen Sie meine Antwort auf diese Frage auf stackoverflow: stackoverflow.com/a/53409439/279326
Nicolas Janel

Antworten:

11

Jemand hat ein Skript dafür geschrieben. Es ist unter Extras > Skriptgalerie ... verfügbar . Suchen Sie nach "Blattname", installieren Sie das Skript und verwenden Sie es dann mit =getCurrentSheetName().

William Jackson
quelle
9
Wie kann ich in den "neuen" Google Sheets (die jetzt einen Add-On-Store verwenden) auf dieses Skript zugreifen?
Benjamin
4
Das funktioniert nicht mehr. Verwenden Sie die Antwort von @ user93341. Ich habe den gesamten Prozess durchlaufen, um seine Funktion im Add-On-Store zu veröffentlichen, und im letzten Schritt wollten sie, dass mein Konto für 5 US-Dollar verifiziert wird, und ich würde mich darauf beschränken, 20 Artikel zu veröffentlichen. Le seufzt.
Bruno Bronosky
49

Gehen Sie zu ToolsScript Editor und fügen Sie diesen Code hinzu:

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Fügen Sie in einer Zelle, in der der Blattname angezeigt werden soll, Folgendes hinzu:

=sheetName()

Beim Zugriff auf Blattnamen über die unten gezeigten API-Funktionen ist ein Problem aufgetreten, bei dem nur der erste Blattname zurückgegeben wurde. Dies wurde im März 2015 behoben .

user12345
quelle
Könnten Sie Ihre Antwort für diejenigen von uns erweitern, die mit dem Skript-Tool nicht vertraut sind?
Coding Badger
1
@Barry 1) Wählen Sie Extras-> Skript-Editor. 2) Fügen Sie in der resultierenden Textdatei diese Funktion am Ende hinzu. 3) Klicken Sie auf Speichern. 4) Jetzt können Sie diese Funktion in Ihrem Arbeitsblatt verwenden.
Gamliela
5
Diese Funktion funktioniert zwar einwandfrei, wird jedoch nicht aktualisiert, wenn sich der Blattname ändert, sodass sie eigentlich nicht nützlich ist.
jesjimher
1
@jesjimher Laut diesem Google Text & Tabellen-Hilfeforum wird beim erneuten Speichern des Skripts im Skript-Editor festgestellt, dass die Registerkartennamen ordnungsgemäß aktualisiert wurden.
Aribeiro
1
Ich weiß, aber es ist verwirrend und völlig anders, als Blattformeln funktionieren. Ich erwarte, dass eine Formel aktualisiert wird, sobald sich die Daten ändern, auf die verwiesen wird. Jetzt macht diese Formel das nur, wenn ich das Quellenskript öffne und speichere. Ich könnte einfach jedes Mal den Blattnamen von Hand eingeben, um den Ärger zu sparen.
Jesjimher
6

Hier ist ein Benutzerdefinierte Funktion Code - Schnipsel eine Tabelle Namen zu erhalten , indem es die Identifikation .

function GetSpreadsheetNameById(id) {
  var ss = SpreadsheetApp.openById(id);
  return ss.getName();
}

Übergeben Sie in einer Zelle eine Blattkennung (suchen Sie in der Tabellenkalkulations-URL nach der Kennung).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')
JamesThomasMoon1979
quelle
1
Dies ist nur eine geringfügige Änderung an @ user93341 Antwort oben.
JamesThomasMoon1979
Dies gibt den folgenden Fehler: "Sie haben keine Berechtigung zum Aufrufen von SpreadsheetApp.openById."
Aurovrata
Dies gibt den Namen des Dokuments anstelle des Blatts zurück. Ersetzen Sie ihn return ss.getName();durch return ss.getActiveSheet().getName();den Namen des Blatts (ich brauchte tatsächlich den Namen des Dokuments, also danke)
Emilien
-1

Versuche dies:

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Fügen Sie es in Tools> Script Editor ein und rufen Sie die Funktion aus einer Zelle wie dieser auf:

=getNameOfThisSheet(NOW())

Der NOW()vorherige GoogleClock()Parameter hilft dabei, Probleme mit der Speicherung zu vermeiden.

GlobeCore.com
quelle
GOOGLECLOCK () wurde durch NOW () ersetzt, da nicht deterministische Funktionen nicht als Argumente für benutzerdefinierte Funktionen verwendet werden können.
Rubén