2016-09-29 3 views
1

Ich möchte, dass meine Tabelle zu einem bestimmten Blatt geöffnet wird. Ich habe folgendes versucht, aber es öffnet nur das erste Blatt.Wie gehen Sie direkt zu einem bestimmten Blatt, wenn Sie eine Google-Tabelle öffnen?

function setActiveSheetToday(){ 
    var date = new Date(); 
    var sheet = getSheetByDate(date); //custom function that returns sheet object 
    var SS = sheet.getParent(); 
    SS.setActiveSheet(sheet); 
} 

Dann mache ich einen onOpen Trigger.

Wenn ich die Tabelle öffne, wird sie immer noch auf dem ersten Blatt geöffnet. Irgendwelche Vorschläge?

EDIT

Ich glaube, ich den Grund gefunden, warum es hier nicht funktioniert: https://developers.google.com/apps-script/guides/bound#special_methods

So anscheinend funktioniert es nur für beschränkte Skripte ..

+1

Es gibt keine Methode mit dem Namen 'getSheetByDate()' –

Antwort

0

Haben Sie das Objekt überprüft, dein Blatt?

können Sie versuchen, diese Funktion für eine einfache Prüfung:

function onOpen() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet1'); 
    ss.setActiveSheet(sheet); 
} 

make Blatt „Sheet1“ genannt, gehen Sie zu jedem anderen Blatt und die Seite neu laden.

für Ihren Code schlage ich den Test:

Logger.log(sheet.getName()); 
+0

Die Funktion 'getSheetByDate()' funktioniert, das ist nicht das Problem. Ich nehme an, Sie nehmen an, dass ich ein Skript verwende, das an eine Tabelle gekoppelt ist. Das ist nicht der Fall. Ich verwende eine unabhängige Skriptdatei. Deshalb verwende ich 'forSpreadsheet (SS_ID) .onOpen()'. – lonewolf

1

Sie könnten das Blatt, das Sie auf dem ersten Blatt öffnen möchten machen. Fügen Sie einfach SS.moveActiveSheet(1); zu Ihrer setActiveSheetToday() Funktion hinzu.

Wenn Sie ein Blatt aus einem gebundenen Skript aktivieren, ändert sich auch der Fokus wie gewünscht. Aus einer separaten Skriptdatei wird dies nicht angezeigt.

+0

Das Blatt an die erste Stelle zu bewegen, ist in meinem Projekt keine wirklich brauchbare Option. Gibt es eine Möglichkeit, ein Skript an eine Tabelle mit Code zu binden? Ansonsten muss ich das Skript manuell zu jeder Tabelle hinzufügen. – lonewolf

+0

Wenn Sie eine Kalkulationstabelle mit einem gebundenen Skript kopieren, wird das gebundene Skript damit kopiert, aber ich bin mir nicht sicher, wie Sie es von einem Skript ändern können, das an anderer Stelle ausgeführt wird. Es wäre ein wenig klobig, aber Sie könnten möglicherweise eine Tabelle mit einer 'onOpen()' Funktion, die ein Blatt in einem versteckten Blatt genannt aktiviert, dann bauen, was auch immer Sie machen auf eine Kopie der Tabelle, und schreiben Sie die Name des zu öffnenden Blattes. Es wäre viel einfacher, nur das Blatt nach vorne zu verschieben - was ist die Reihenfolge der Blätter, die Sie nicht tun wollen? – dmusgrave

Verwandte Themen