Code d'exécution trop rapide pour les applications de script...?

J'ai écrit du code à exécuter lors de cette feuille de calcul est ouvert. Surtout, vérifier pour voir si il y a des feuilles en plus de la feuille nommée "Main" et si c'est possible de supprimer toutes les mais la "main" un. (Le "Principal" feuille de la première feuille à tout moment.) Puis d'effacer tout ce qui est dans le "Principal" de la feuille et de le remplacer à chaque fois avec les choses que vous pouvez lire dans le code à la fin.

//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');

}

Le script fonctionne parfaitement lorsque je debug ligne par ligne. Il fonctionne aussi bien quand il y a seulement le "Principal" de la feuille de là. Mais quand il y a plusieurs feuilles, et j'ai ouvrez la feuille de calcul, il serait courir à travers la boucle while et supprimer toutes les feuilles à l'exception de la "main", mais il aurait pour effet de bloquer sur le "Principal" et juste afficher "Chargement..." et ne pas afficher toutes les cellules ou quoi que ce soit. Le menu personnalisé s'affiche. Il est également à l'affiche de "Travailler" dans une boîte jaune en haut.

  • Supprimer "ss.getSheets()" de la boucle? que faire si vous ne disposez que de 2 feuilles, avez-vous touché le problème. Je soupçonne que le problème est le réseau. Je soupçonne certaines fonctions de votre boucle sont lents parce qu'ils font un appel réseau.... Ou vous pouvez les supprimer via un déclencheur.
  • La solution Serge réponse ci-dessous résolu. Mais vous avez raison, c'est un problème de réseau.
InformationsquelleAutor PhysLabTsar | 2013-06-26