Les nouvelles fonctions personnalisées Google Sheets affichent parfois "Chargement en cours ..." pour une durée indéterminée
SPÉCIFIQUES POUR: La "NOUVELLE" des feuilles de calcul google seulement.
C'est un problème connu comme souligné par google dans les nouvelles feuilles.
Questions: Si vous écrivez complexe* fonctions personnalisées dans google-apps-script pour les feuilles de calcul google, vous aurez l'occasion de rencontrer des cellules qui affiche un rouge boîte d'erreur autour de la cellule avec le texte "Chargement..."
Google a suggéré:
Si cela se produit, essayez de recharger la page ou le changement de nom de la fonction et de la modification de toutes les références vers le nouveau nom.
Toutefois, pour les autres développeurs confronté à ce problème (et qui sont incapables d'échapper à la "chargement..." d'erreur), j'ai écrit mes découvertes dans la réponse ci-dessous sur la façon d'obtenir le passé de cette manière (avec des limitations), de manière cohérente.
*Nous allons traiter cette question comme le réponse canonique pour Google Feuille de durée indéterminée "Erreur... le Chargement des données du problème". Il n'est pas limité à complexes ou lents fonctions.
source d'informationauteur Angelo
Vous devez vous connecter pour publier un commentaire.
J'ai également eu l'infinie chargement d'un problème avec la fonction suivante.
S'avère que vous ne devriez pas avoir de fin ";". Enlever le point-virgule résolu le problème.
Cela fonctionne comme on s'y attendrait.
FWIW, je viens de tomber sur ce et que le coupable s'est terminée par une
getRange()
appel qui a tiré à plusieurs milliers de lignes dans un tableau. Périodiquement, il serait bloquée sur le message "Chargement...".J'ai travaillé autour de lui qui vont dans le cache de documents. C'est un peu encombrants car le cache stocke uniquement des chaînes de caractères, pas des tableaux, mais vous pouvez le forcer à revenir dans un tableau à l'aide
.split(',')
quand vous en avez besoin pour accéder au tableau.(Dans mon cas, c'est un tableau unique. Il y a probablement un moyen de le faire à l'aide d'un double tableau, soit par l'envoi de chaque ligne ou colonne dans son propre cache, ou la lecture de la valeur du cache arrière N éléments à la fois, chaque N de devenir son propre tableau.)
Voici pertinentes peu de mon code:
C'est certainement un bug dans Apps Script -- getRange() ne devraient pas se bloquer sans délai d'attente ou de message d'erreur. Mais au moins, il y a une solution de contournement. Voici le bug que j'ai ouvert contre elle, où j'ai aussi mis le code complet.gs de ma feuille.
J'ai aussi eu le problème que vous avez expliqué. Il semble que cela peut être dû à plus d'un titre.
J'ai fini par trouver que ma fonction personnalisée a été l'affichage de cette erreur parce qu'elle reposait sur des données d'une
=IMPORTRANGE()
appel, et cet appel a été un échec.J'ai finalement trouvé que le
=IMPORTRANGE()
appel n'était pas parce que j'avais oublié de mettre à jour l'URL que c'était de l'importation à partir de quand j'avais téléchargé une nouvelle version de ce importés à partir de la feuille. Il semble que d'essayer de IMPORTRANGE à partir d'un fichier à la corbeille peut causer de l'infini "Chargement en cours..." s'affiche.Une cause: les Autorisations d'avoir besoin de l'autoriser.
Autant que {ce problème, mieux formulée de la cellule de résultat(s) d'une fonction de personnalisation de l'affichage de la épouvantablement-vague message " Chargement... Erreur: chargement des données...’}, en effet, dans le cas où toutes les instances de la même fonction personnalisée d'appel de l'affichage de cette erreur, c'est que des Feuilles de calcul Google a besoin d'autorisations pour exécuter le script (souvent en plus: sa signification dans le passé, il n'a pas besoin de ces), donc au lieu de {à agir de façon appropriée: alors demander à l'utilisateur de ces autorisations d'autre retour que l'erreur}, Les feuilles de la place se bloque avec cette dégoûtante vague d'erreur.
Des autorisations supplémentaires peuvent être nécessaires à partir de 1 ou plus:
De correction, j'ai explicitement couru mon GAZ feuille de calcul de code en deux: en cliquant sur l'un de mes personnalisé des fonctions de menu et, dans l'éditeur de script’, l'exécution de l'une de mes personnalisé JS fonctions notamment la " onOpen()’ puisque c'est le plus complet. Le premier m'a promu en effet, de nouvelles autorisations, via popup ‘Autorisation Nécessaire
L'application "MM6ZBT(MM6Z83 script)" besoin d'une autorisation pour exécuter.’, si onOpen() l'a également fait dans le cas de GAZ de la révision de ses autorisations, puisque nous avons utilisé cette feuille. Puis, comme j'étais encore en train de ce ‘Chargement...’ erreur, j'ai rechargé la page web (donc la feuille), et, au moins pour ces cas de cette dégoûtante vague d'erreur, il a disparu et les calculs a bien fonctionné 🙂
Conseil Important: Créer plusieurs copies de l'ensemble de votre feuille de calcul que vous expérimentez. J'ai eu 3 feuilles de calcul google corrompu et rendus complètement dans accessibles (coincé dans une boucle d'actualisation). Ce qui s'est passé quand je faisais des expériences avec des fonctions personnalisées si VOUS AVEZ ÉTÉ AVERTI!
Vous voulez essayer une ou plusieurs des méthodes suivantes pour résoudre ce problème:
Comme suggéré par google, essayez de re-chargement de la feuille de calcul ou re-nommage de la fonction ou la modification des paramètres dans la cellule pour voir si cela résout le problème.
Surround TOUTES vos fonctions personnalisées dans un bloc try-catch. Cela permettra de détecter les problèmes de code vous pouvez ne pas avoir testé correctement. Par exemple:
try{
//méthodes
}catch(ex){
retour "Exception:"+ex;
}
Revenir à l'ancien feuilles et de tester vos fonctions et vérifier que pour tout autre type d'erreur comme une boucle infinie ou invalide format de données. Si la fonction ne fonctionne pas dans les vieux draps, il ne fonctionnera pas dans les feuilles, il sera plus difficile à déboguer.
Assurer qu'AUCUN de vos paramètres, reportez-vous à, peut s'attendre à ou sera jamais contiennent un nombre supérieur à 1 million de dollars (1000000). Aucune idée pourquoi, mais à l'aide d'un nombre de plus de un million comme n'importe quel paramètre à cause de votre fonction pour ne pas s'exécuter. Si vous avez, demandez à l'entrée pour être de taille réduite (peut-être diviser par 1000 ou demander M au lieu de mm).
Vérifier numérique ou à virgule flottante questions dont le nombre ne pourra excéder un set normal de chiffres significatifs. Les nouvelles feuilles qui semble être un petit glitch avec des chiffres de sorte que si vous vous attendez à de très grandes ou très complexes, vos fonctions peuvent ne pas fonctionner.
Enfin, si aucune de ces travaux, basculer vers l'ancien des feuilles de calcul google et continuer à travailler.
Si vous en trouvez d'autres limitations ou les causes de fonctions à l'échec de l'exécution, veuillez écrire ci-dessous pour moi et les autres utilisateurs qui sont de gros g-feuille utilisateurs!
Add-ons
J'ai eu deux add-ons, et qu'aucune fonction n'a été chargement.
Je les ai retirées, et tout va bien!
Je ne peux pas ajouter un commentaire, mais je voulais mentionner que j'ai aussi eu ce problème aujourd'hui, après 2 ans de la feuille en cours d'exécution avec succès, et j'ai trouvé ce fil basé sur la recherche de réponses. J'ai utilisé la solution indiquée ci-dessus pour renommer la fonction, et de remplacer le nom de lieu à l'intérieur de la feuille. C'était facile pour moi, puisque je n'ai eu qu'une fois l'instance de la fonction appelée dans la feuille. Mais, dès que j'ai renommé/remplacé, la feuille a commencé à fonctionner à nouveau.
Pour moi, le changement de nom de la fonction personnalisée résolu le problème. Du moins pour le moment.
Juste pour ajouter à Azmo 's réponse...
En fait, j'ai supprimé tous fuite des points-virgules dans le code:
Et découvert, que lorsque vous faites cela sur une très large gamme vous pouvez également maximiser le nombre acceptable d'appels à l'API.
Pour la contourner, j'ai ajouté un
IF THEN
vérifier autour de mon script personnalisé appel.Ainsi, au lieu de:
=checkedOff(H10,H11)
Utiliser quelque chose comme ceci pour vérifier un rempli avant d'exécution:
=if(H17<>"-",checkedOff(H10,H11),0)