2017-01-03 3 views
0

Ich bin nach ein wenig Hilfe Schleife durch Blätter in Google.Google Tabellen - Durchblättern Daten konsolidieren

Szenario - Ich habe etwa 20 Registerkarten mit dem gleichen Layout, ich muss Informationen von allen sammeln und in 1 Hauptblatt platzieren. Die Daten beginnen in Zeile 2 (Kopfzeilen) und können in der Länge variabel sein (Spalte Ende ist Spalte "Z")

Der Code kann entweder eine neue Registerkarte erstellen, um alle Daten zu platzieren, oder ich kann eine spezifische erstellen Tab.

(muss möglicherweise in Betracht ziehen, die ich brauche nicht ein paar Blätter enthalten - ich kann diese definieren)

in Excel wäre es eine einfache Erstellen Sie neue Registerkarte (Called Zusammenfassung) Schleife durch Tabulatoren Wenn Registerkarte Name ist nicht auf meiner Ausnahmeliste kopiert Bereich dann auf dem Blatt (Dynamic Range) Platz Bereich auf nächste verfügbare Zeile auf Registerkarte Zusammenfassung wiederholen, bis

Jede Hilfe

Antwort

0

bei Anyo geschätzt getan ne sonst hat ähnliche Probleme, die ich geschaffen, aus mir einen Code zu arbeiten (vielleicht nicht die schnellsten, aber es macht den Job)

function LoopSheetsMergeData(){ 
var ss = SpreadsheetApp.getActive(); 
var allsheets = ss.getSheets(); 
var destsheet = ss.getSheetByName("Summary");//MasterSheet To Merge To 
var StartRow = 4//StartRow on all tabs 
var StartCol = 1//AllData starts in Column 1 
var EndCol = 26//End Column of all data 
for (var s in allsheets){ 
    var sheet=allsheets[s] 
    if (sheet.getName() == "Summary") //Disregard certain tabs 
    {  
    } 
    else 
    {  
var EndRow = sheet.getLastRow(); 
var copyRng = sheet.getRange(StartRow,StartCol,EndRow,EndCol); 
var destlastRow = destsheet.getLastRow(); 
var nextRow = destlastRow +1 
var shtname = sheet.getName(); 
copyRng.copyTo(destsheet.getRange(nextRow,2));//Row and Column of where to paste the information 
var newLastRow = destsheet.getLastRow();//New last Row after pasting the data 
destsheet.getRange(nextRow,1,newLastRow,1).setValue(shtname&&newLastRow);//Insert into column 1 for each row copied the name of the sheet it came from  
    } 
    }//end of sheets loop. 
}// end of function...