2017-04-18 4 views
1

Ich versuche, ein einfaches Skript zu erstellen, das zuerst alle Zellen in Zeile 3 ab Spalte 3 überprüft, ob sie einen anderen Namen als die verfügbaren Blätter enthalten, und wenn ja, erstellen Sie ein neues. Wenn nicht, gehe zur nächsten Zelle runter. Am besten bis die Reihe leer ist, aber ich bin nicht so weit gekommen. Zur Zeit habe ichJS/GS Einfaches Google Sheets-Skript

var row = 3; //Global Variable 
 
function Main() { // Main Function 
 
    Activate(); 
 
    GetNames(); 
 
} 
 
function Activate() { // Initialize 
 
    var get = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var import = get.getSheetByName("Import"); 
 
} 
 
function GetNames() { // Get Names and check for existing Sheets 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var import = ss.getSheetByName("Import"); 
 
    var sheet = ss.getSheets()[0]; 
 
    for (i = 0; i < 1000; i++) { // Loop which I think is broken 
 
     var names = import.getRange(row,3).getValue(); 
 
     if (import.getSheetByName(names) == null) { 
 
      import.insertSheet(names); 
 
      import.activate(); 
 
     } 
 
     row + 1; 
 
    } 
 
}

Und hier ist die Daten

enter image description here

Es gelingt das erste Blatt hinzufügen, aber nicht in der Schleife weiter, denke ich. Wie Sie wahrscheinlich sehen werden, bin ich sehr neu und jede Hilfe würde geschätzt werden.

Antwort

0

Sie wollten wahrscheinlich row von 1 hier erhöhen:

row + 1; 

Aber du bist nicht. row + 1 ist nur ein Ausdruck mit einem Wert (4, in Ihrem Beispiel, weil die Zeile insgesamt 3 bleibt). Was würden Sie brauchen, ist die Aussage

row = row + 1; 

Aber wenn das alles ist, dass Sie die globale Variable verwenden row für Sie tun es nicht brauchen. Verwenden Sie einfach die Loop-Variable i, die bereits von 0 bis 1000 zählt. Wahrscheinlich möchten Sie etwas wie import.getRange(i+3,3).

+0

Das hat den Trick vielen Dank. Danke auch, dass Sie mit der i-Variable weiter ins Detail gegangen sind! – D3sert