2017-03-07 2 views
-1

Hier ist, was ich brauche, mit App-Skript zu tun:Cut Row & Paste in unterschiedlichem Blatt basierend auf Spaltenwert in App Script

  1. Auf dem Blatt "Bibliothek Material", finden Sie eine Reihe basierend auf Spalte 3 des Wert .

  2. Wenn es "Unbezahlte Geldstrafen & Rückerstattungen" ist, wählen Sie die Zeile, wenn es "Bibliotheksmaterialien" ist, lassen Sie es.

  3. Fügen Sie diese Zeile in ein Blatt derselben Tabelle mit der Bezeichnung "Unbezahlte Geldbußen & Rückerstattungen" ein.

Anmerkungen:

  • In der Tabelle "Fines Unpaid & Refunds" row 1 wird eingefroren und für die Spaltenüberschriften vorbehalten.

**** Vielen Dank für Ihre Hilfe !! **

+0

Muss es ausgeschnitten und eingefügt werden oder kann es live mit '= query (" Bibliotheksmaterialien "! A1: Z," Wählen Sie * wo C = 'Unbezahlte Bußgelder & Rückerstattungen' ", 1)' –

+0

es kann Wie auch immer, um diese Zeilen auf das andere Blatt zu bringen ... Ich wusste einfach nicht, wie ich es sonst erklären sollte! –

Antwort

0

Holen Sie sich die Daten in "Bibliothek Materials" mit getRange. Durchlaufen Sie jede Zeile und überprüfen Sie den Wert der Zelle in Spalte 3. Wenn es "Unbezahlte Geldbußen & Rückerstattungen" ist, verwenden Sie getValues und appendRow zum Kopieren und Einfügen der Zeile aus "Bibliotheksmaterialien" in "Unbezahlte Geldbußen & Rückerstattungen". Dies kann nicht die richtige Art und Weise, es zu tun, und Sie werden die Syntax verdoppeln müssen überprüfen, aber das wäre ein guter Ort, um zu starten:

// get the spreadsheet and sheets 
 
var ss = SpreadsheetApp.getActive(); 
 
var libraryMaterials = ss.getSheetByname("Library Materials"); 
 
var finesAndRefunds = ss.getSheetByName("Unpaid Fines & Refunds"); 
 

 
// gets the data in Library Materials 
 
var range = libraryMaterials.getRange(1, 1, libraryMaterials.getLastRow(), libraryMaterials.getLastColumn()); 
 
var data = range.getvalues(); 
 

 
// loops through rows in data 
 
for (var i = 0; i > data.length; i++) { 
 
    var stay = "Library Materials"; 
 
    var copy = "Unpaid Fines & Refunds"); 
 
    var check = data[i][3]; // ith row, 3rd column 
 
    if (check == stay) {continue}; // do nothing 
 
    else if (check == copy) { 
 
    var rowToCopy = [range[i]].getValues(); 
 
    finesAndRefunds.appendRow(rowToCopy[0]); 
 
    }; // copy the row 
 
    else { Logger.log("error message") }; // send an error message 
 
}; // end i

Wenn Sie würde Wenn Sie die Zeile löschen möchten, fügen Sie die Zeile libraryMaterials.deleteRow(i); in das Ende der if else ein.

+0

Vielen Dank veryrad. Ja, es gibt eine Syntaxfehlerzeile 16. Ich kann nicht herausfinden, warum, aber das hat mir enorm geholfen! Vielen Dank. –

+0

Mit welcher Linie haben Sie Probleme? Können Sie Ihre Frage mit Ihrem Code aktualisieren? – veryrad

Verwandte Themen