2016-08-09 47 views
0

Ich habe die aktiven Dinge entweder von event.source.getActive ... oder von SpreadsheetApp.getActive ... aufgerufen. Welches ist richtiger. Ich habe diese aus mehreren Quellen gezogen, also verwende ich manchmal in meinem Skript einen über den anderen. Ich habe das Gefühl, ich habe versucht, sie austauschbar zu benutzen, aber die Dinge liefen schief (das war schon früh, also gab ich auf). Aber ich frage mich, welcher Weg der Beste sein sollte, oder brauche ich beide wirklich? Danke im Voraus.Wie kann man ein Ereignis in Google Scripts aufrufen?

var ss = SpreadsheetApp.getActiveSpreadsheet();//ss is active spreadhseet 
var s = event.source.getActiveSheet();//s is active sheet withing spreadsheet 
var r = event.source.getActiveRange();//r is active cell 


var sheetAppActive = SpreadsheetApp.getActiveSheet();//sheetAppActive is active sheet within spreadsheet 
var rangeAppActive = sheetAppActive.getActiveCell(); //rangeAppActive is the active cell 

Antwort

0

Kürzlich hatte ich Probleme mit typeof event.value onEdit einfachen Auslöser, da es immer string zurückgegeben. Das Problem wurde gelöst, indem typeof SpreadsheetApp.getActiveRange().getValue() verwendet wurde, also denke ich, dass der beste Weg von der Ereigniseigenschaft abhängt, die Sie verwenden werden.

Auf der anderen Seite sollten Sie versuchen, die Aufrufe an die Google Apps Services-Klassen so gering wie möglich zu halten, um die Ausführungszeit mindestens einzuhalten.

Referenzen

my answer-Script to automatically capitalize contents of a cell in Google Sheets?

+0

So für die aktive Zelle aufrufen, event.source.getActiveRange mit(); und Verwenden von SpreadsheetApp.getActiveCell(); sind gleich? –

+0

Sie sind nicht genau gleich. –

1

Beide sind geeignet und machbar, aber Sie können es als Voraussetzung verwenden.

Wenn für Ihr Skript nur das aktuelle Skript verwendet werden muss, können Sie mit getActiveSheet() fortfahren. Hier können Sie keine Daten eines anderen Blattes verwenden.

Und wenn Sie getActiveSpreadsheet() verwenden, können Sie sowohl aktuelle als auch andere verfügbare Datenblätter verwenden.

Hängt von aktueller Anforderung und zukünftiger möglicher Anforderung ab.