2017-08-15 1 views
0

Hallo Ich mache ein Skript, das Daten aus einem Arbeitsblatt (das Daten von einem Formular erhält) erstellt ein Ereignis in meinem Hauptkalender abhängig von der Entscheidung eines Betreibers.Tabellenkalkulation in Abhängigkeit von der Entscheidung eines Bedieners

Er empfängt die Daten aus dem Formular in den Spalten A bis F. In Spalte G entscheidet der Bediener, ob auf "Ja" oder "Nein" gesetzt werden soll.

Wenn G "Ja" ist, prüft das Skript in Spalte H, ob etwas geschrieben wurde. Wenn es leer ist Das Skript schreibt in Spalte H und erstellt ein Ereignis mit den Daten von A: F, Wenn nicht etwas in Spalte H geschrieben wird, geht es einfach in die nächste Zeile, bis das letzte geschrieben wird.

Mein Skript funktioniert nur korrekt, wenn die gesamte H-Spalte leer ist. Dies zwingt mich, die Spalte H immer zu löschen und Ereignisse, die bereits mit jedem neuen Eintrag in den Kalender geschrieben wurden, zu duplizieren.

Wie bekomme ich das Skript weiter ausgeführt, ohne die H-Spalte zu löschen?

Mein Skript ist:

function teste() { 
var ss = SpreadsheetApp.getActive(); 
var dados = ss.getDataRange().getValues(); 
var ultimaLinha = ss.getLastRow() - 1; 
var options = { 
    description: dados[ultimaLinha][2], 
    location: dados[ultimaLinha][5], 
}; 
for (var i = 1; i < ultimaLinha + 1; i++) { 
    var validacao = dados[i][6]; 
    var escrita = dados[i][7]; 
    if (validacao === "Yes") { 
     if (escrita == null) { 
      SpreadsheetApp.getActiveSheet().getRange(i + 1, 8).setValue('ok'); 
      var event = CalendarApp.getDefaultCalendar().createEvent(
       dados[i][1], 
       new Date(dados[i][3]), 
       new Date(dados[i][4]), 
       options); 
     } 
    } 
} 

Mein Arbeitsblatt

enter image description here

Antwort

0

Wenn Sie getValues() die leeren Zellen in dem Datenfeld noch vorhanden sind, sie enthalten nur einen leeren String. Ändern null zu ""

if (escrita == "") { 
... 
} 
0

Wenn ich Ihre Zusammenfassung richtig verstehen, ich glaube, Sie das folgende Kontroll entfernen müssen.

if (escrita == null) { 
+0

Wenn ich diese Zeile entfernen das Skript für die Ereignisse doppelte Ereignisse erstellt, die bereits zuvor verarbeitet wurden –

Verwandte Themen