2016-05-07 12 views
0

Ich habe eine sehr einfache Frage Ich habe dieses Skript gefunden, das perfekt funktioniert, und ich weiß nicht, Programmierung. Dieses Skript sucht nach jedem Datum Wert in einer bestimmten Spalte im Inneren des Blattes genannt benötigt und wenn er es erkennt, dann bewegt er die diese Zeile auf einem anderen Blatt Erworbene genannt. Ich muss das gleiche mit anderen Quellblättern tun. Zum Beispiel: Ich habe 4 Blätter namens Neeeded1, Neeeded2, Neeeded3 und Neeeded4. Alle müssen die Zeilen, in denen ein Datum eingegeben wurde, in das gleiche Erworbene Blatt verschieben. Ich hoffe, jemand könnte mir helfen. Danke im Voraus!Google Tabellen Skript onEdit

function onEdit() { 
    // moves a row from a sheet to another sheet when a date is entered in a column 
    // adjust the following variables to fit your needs 
    // version 1.0, written by --Hyde, 24 September 2014 
    // see https://productforums.google.com/d/topic/docs/wtzlc_ludTw/discussion 

    var sheetToWatch = "Needed"; 
    var columnNumberToWatch = /* column G */ 4; // column A = 1, B = 2, etc. 
    var sheetToMoveTheRowTo = "Acquired"; 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var cell = sheet.getActiveCell(); 

    if (sheet.getName() == sheetToWatch && cell.getColumn() == columnNumberToWatch && cell.getValue() instanceof Date) { 
    var targetSheet = ss.getSheetByName(sheetToMoveTheRowTo); 
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
    sheet.getRange(cell.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange); 
    sheet.deleteRow(cell.getRow()); 
    } 
} 

Antwort

0

Kurze Antwort:

function onEdit() { 

    var sheetsToWatch = ["Needed1", "Needed2", "Needed3", "Needed4"]; 

    for (var i = 0; i < sheetsToWatch.length; i++) { 
    var sheetToWatch = sheetsToWatch[i]; 

    // all good code goes here 

    }  
} 

Und die ganze Code ist:

function onEdit() { 
    // moves a row from a sheet to another sheet when a date is entered in a column 
    // adjust the following variables to fit your needs 
    // version 1.0, written by --Hyde, 24 September 2014 
    // see https://productforums.google.com/d/topic/docs/wtzlc_ludTw/discussion 

    var sheetsToWatch = ["Needed1", "Needed2", "Needed3", "Needed4"]; 

    for (var i = 0; i < sheetsToWatch.length; i++) { 
    var sheetToWatch = sheetsToWatch[i]; 
    var columnNumberToWatch = /* column G */ 4; // column A = 1, B = 2, etc. 
    var sheetToMoveTheRowTo = "Acquired"; 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var cell = sheet.getActiveCell(); 

    if (sheet.getName() == sheetToWatch && cell.getColumn() == columnNumberToWatch && cell.getValue() instanceof Date) { 
     var targetSheet = ss.getSheetByName(sheetToMoveTheRowTo); 
     var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
     sheet.getRange(cell.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange); 
     sheet.deleteRow(cell.getRow()); 
    } 

    } 

} 

Sie neue Blattnamen in Array hinzufügen können:

var sheetsToWatch = ["Needed1", "Needed2", "Needed3", "Needed4", "New Name"]; 
+0

Vielen Dank Max !! Ich habe eine letzte Frage: Wie kann ich das eingegebene Datum mit was auch immer ich will ersetzen? Zum Beispiel eine Nummer oder ein einfacher Text? Ist das auf einfache Weise möglich? Vielen Dank! – user3741840

+0

Dieser Teil des Codes '&& cell.getValue() instanceofDatum prüft, ob der eingegebene Wert das Datum ist. Wenn Sie es löschen, wird jeder Eintragstyp ersetzt. –