2016-06-12 9 views
-2

Ich habe Blatt mit einer Matrix, die einige Daten enthält. Ich habe dieses Skript geschrieben, das die Daten auf ein anderes Blatt kopiert und es unter Verwendung verschiedener Parameter sortiert, so dass ich automatisch alles sortieren kann, ohne es jedes Mal von Hand sortieren zu müssen. Problem ist, der Code funktioniert nur, wenn die Daten 174 Reihen oder weniger sind. Wenn ich versuche, 175 Zeilen zu sortieren, bekomme ich den "Tabellenfehler". Wie kann ich das umgehen? Muss ich einen Bestellalgorithmus da drin haben? Wird es überhaupt funktionieren?"Tabellenkalkulation" Fehler in Google Tabellen

function sortsheet3() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    //ss is the spreadsheet 
var s0 = SpreadsheetApp.getActiveSheet(); 
    //s0 is the sheet I was working on 
var c0 = s0.getActiveCell(); 
    // c0 is the cell I was working on 
    // START SORTING 
var s1 = ss.getSheetByName('Lista piante'); 
var x = s1.getMaxColumns(); 
var y = s1.getMaxRows(); 
var range = s1.getRange(2, 1, 175, x); 

var s2 = ss.getSheetByName('Potenziale'); 
var r2 = s2.getRange(2, 1, 175, x) 
range.copyTo(r2); 
r2.sort({column: 4, ascending: false}); 

var s3 = ss.getSheetByName('Famiglia'); 
var r3 = s3.getRange(2, 1, 175, x) 
range.copyTo(r3); 
r3.sort({column: 3, ascending: true}); 

    // END SORTING 
SpreadsheetApp.setActiveSheet(s0); 
    // go back to original active cell 
s0.setActiveCell(c0); 
} 
+0

Übrigens habe ich versucht, 'x' mit der tatsächlichen Anzahl der Spalten zu ersetzen, die 21 ist. Nichts geändert. True, 175x21 ist ziemlich viel Daten ... für einen Menschen. Bei einem Skript sollte es sich um Millisekunden handeln. Die Transferzeit sollte wahrscheinlich länger sein als die für die Sortierung benötigte Zeit. –

+0

getestet Ihr Skript mit mehr als 500 Zeile hat keine Probleme (vielleicht ist Ihre Tabelle gebrochen, versuchen Sie es in einem neuen) – Harold

+0

Fügen Sie weitere Details wie die Datenstruktur des aktiven Blattes. Erwägen Sie auch, eine Demo-Tabellenfreigabe für den Zugriff auf die Ansicht mit jedem Benutzer mit der Verknüpfung zu erstellen, und fügen Sie ihn der Frage hinzu, um das Problem zu reproduzieren. –

Antwort

0

I Turn out wurde getMaxRows statt getLastRow verwenden, nicht den Unterschied zwischen den beiden bekommen haben, also war ich außerhalb der Grenzen von dem tatsächlichen Inhalt des Blattes. Das Gleiche gilt für Spalten.

Verwandte Themen