2017-05-11 11 views
1

Ich habe gs Skript geschrieben, um Daten von allen Zellen in Blättern zu löschen. Spreadsheet hat viele Blätter (ungefähr 200) und ich bekomme einen Fehler bei der Zeitlimitausführung. Vielleicht hat jemand Ideen, wie man dieses Problem lösen kann. Hier ein Beispiel meines Codes.Google Tabellenkalkulationsskript Zeitlimit der Ausführung

function cleanAllOld() { 

    var sheetsName = new Array(); 
    var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link"); 
    var sheets = destination.getSheets(); 

    for (var k = 0; k < sheets.length; k++) { 

    sheetsName.push([sheets[k].getName()]); 

    for (var p = 0; p < sheetsName.length; p++) { 
     var sheet = destination.getSheetByName(sheetsName[p]); 
     if (sheet === null) {} else { 
     sheet.getDataRange().clearContent(); 
     } 
    } 
    } 
} 

Antwort

2

ich nicht den ganzen Teil des Codes, aber ich denke, dass er für nichts zu kompliziert ist. Hier ist ein Beispiel für die Arbeit:

function AllDelete() { 

    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link"); 
    var sheets = ss.getSheets(); 
    var i = 0; 

    for(i in sheets){ 

    sheets[i].clearContents(); 

    } 

} 

Edit: Max ist schnell und richtig ist, die getDataRange() -Methode ist eine Menge Ressourcen mit

+0

Ich habe Fehler „Typeerror bekam: Kann nicht funktionieren clearContent finden in Objektblatt. " ohne 'getDataRange()'. Damit funktioniert das Skript einwandfrei. Vielen Dank. – ysytnik

+0

Mein Fehler, in meiner Probe fehlt ein 's'. Sieh dir den Schnitt an. –

1

Ich denke, das Problem ist Datenbereich.

Versuchen Sie, diese

sheet.getDataRange().clearContent();

durch diese ersetzen:

sheet.clearContents();

Verwandte Themen