2017-06-29 1 views
0

Ich habe ein Dokument in Google Sheets (I im Gesundheitswesen Simulation arbeiten), die zwei separate Blätter (Tabs) innerhalb des Master hat. Eine Registerkarte ist MAR, die andere ist VITALS. Ich brauche jeden, um innerhalb desselben Skripts zu laufen und sich nicht gegenseitig zu stören. Ich kann nur einen zur Arbeit bringen, nicht den anderen.Benötigen Zeitstempel für zwei getrennte Blätter in Google-Tabelle innerhalb derselben benutzerdefinierten Skript

Ich werde jeden Posten unter (Sie werden, dass in der Lage zu sehen, wenn man arbeitet, wird der andere nicht, aber jeder arbeiten, wenn die anderen // rem'd geführt wird).

Ich bin nicht sicher, welche Variablen geändert werden müssen, damit sie koexistieren und zusammenarbeiten. Ich weiß, dass ich etwas Einfaches vermissen muss. DANKE im Voraus!

MAR TIME STAMP

function onEdit() { 
    var x = SpreadsheetApp.getActiveSheet(); 
    if(x.getName() == "MAR") { //checks that we're on the correct sheet 
    var y = x.getActiveCell(); 
    if(y.getColumn() == 4) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     nextCell.setValue(new Date()); 
    } 
    } 
} 

Vitals TIME STAMP

function onEdit() { 
    var x = SpreadsheetApp.getActiveSheet(); 
    if(x.getName() == "Vitals") { //checks that we're on the correct sheet 
    var y = x.getActiveCell(); 
    if(y.getColumn() == 1) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     nextCell.setValue(new Date()); 
    } 
    } 
} 

Antwort

0

Wie wäre das?

function onEdit() { 
    var x = SpreadsheetApp.getActiveSheet(); 
    if(x.getName() == "MAR") { //checks that we're on the correct sheet 
    var y = x.getActiveCell(); 
    if(y.getColumn() == 4) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     nextCell.setValue(new Date()); 
    } 
    } 
if(x.getName() == "Vitals") { //checks that we're on the correct sheet 
    var y = x.getActiveCell(); 
    if(y.getColumn() == 1) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     nextCell.setValue(new Date()); 
    } 
    } 
} 
+0

Sie Sir sind eine stählerne Augen Rakete Mann! Ich kann dir und allen anderen hier nicht genug danken! – Paul

0

Oder ...

function onEdit(e) { 
var sh, sheets, cols, sheetInd, o; 
sh = e.source.getActiveSheet() 
sheets = ["MAR", "Vitals"] 
cols = [4, 1] 
sheetInd = sheets.indexOf(sh.getName()) 
if(sheetInd == -1 || cols[sheetInd !== e.range.columnStart]) return; 
o = e.range.offset(0, 1) 
if(!o.getValue()) o.setValue(new Date()) 
} 
+0

Die erste Antwort funktioniert perfekt, aber wenn ich dieses Skript versuchen läuft, bekomme ich diesen Fehler: Typeerror: kann Eigenschaft „Quelle“ von undefined nicht lesen. (Zeile 3, Datei "DateTimeStamps") ... gibt es mögliche Fallstricke, bei denen ein Skript über das andere läuft? Ich versuche nur vorauszudenken ... danke für deine Hilfe !! – Paul

+0

Dieses Skript verwendet ein Ereignisobjekt, das beim Bearbeiten der Tabelle "gebildet" wird. Sie können dieses Skript manuell ausführen (indem Sie die ‚Play‘ -Taste im Script-Editor klicken. Stattdessen müssen Sie Ihre Bogen zurück gehen und bearbeiten Sie die Spalten bezeichnet. Dann sehen, ob das Datum erscheint. – JPV

+0

Einige Informationen, die Sie interessant finden könnte : https://developers.google.com/apps-script/guides/triggers/events und https://developers.google.com/apps-script/guides/triggers/ – JPV

Verwandte Themen