Code ausführen zu schnell für apps-Skript...?

Ich schrieb einige code auszuführen, wenn die Tabelle geöffnet wird. Vor allem, überprüfen, um zu sehen, ob es Blätter außer dem Blatt mit dem Namen "Main" und, wenn es ist, löschen Sie alle, aber die "Main" ein. (Die "Haupt" - Platte wird die erste Platte zu allen Zeiten.) Deaktivieren Sie alles, was in der "Main" - Blatt und ersetzen Sie jedes mal mit den Dingen, die man Lesen kann in dem code am Ende.

//This creates a menu when this spreadsheet is opened.
function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  var numSheets = ss.getSheets();
  while (numSheets.length > 1){
    ss.setActiveSheet(numSheets[1]);
    ss.deleteActiveSheet();
    var numSheets = ss.getSheets();
  }

  ss.setActiveSheet(numSheets[0]);
  ss.getActiveSheet().getDataRange().clear();
  menuEntries.push({name: "Create Folder Structure", functionName: "folderStruc"});
  ss.addMenu("Click here when done.", menuEntries);


  ss.getRange('A1:B1').mergeAcross().setValue('TA');
  ss.getRange('A2').setValue('First Name');
  ss.getRange('B2').setValue('Last Name');
  ss.getRange('C2').setValue('Email');
  ss.getRange('D2').setValue('Classes');

}

Das script funktioniert perfekt, wenn ich die debug-Zeile für Zeile. Es funktioniert auch gut, wenn es nur die "Haupt" sheet gibt. Aber wenn es mehrere Blätter, und ich öffne die Tabellenkalkulation, wäre es durch die while-Schleife und löschen Sie alle Blätter bis auf das "Wichtigste", aber es würde hängen auf der "Main" ein und nur die Anzeige "Loading..." und zeigen keine Zellen oder so etwas. Das benutzerdefinierte Menü erscheint. Auch zeigt es "Arbeitet" in einem gelben Feld am oberen Rand.

Entfernen Sie "ss.getSheets()" aus der Schleife? was ist, wenn Sie nur 2 Blätter, tun Sie trifft das problem. Ich vermute, das problem ist das Netzwerk. Ich vermute, einige der Funktionen, die in der Schleife sind langsam, da Sie eine Netzwerk-Aufruf.... Oder Sie können entfernen Sie diese über einen trigger.
Die Lösung Serge beantwortet gelöst. Aber du hast Recht, es ist ein Netzwerk problem.

InformationsquelleAutor PhysLabTsar | 2013-06-26

Schreibe einen Kommentar