Question

Est-il possible de définir une fonction dans Google Spreadsheets qui peut être utilisé dans une cellule?

Il serait utile si je pouvais définir et utiliser les fonctions qui font référence à d'autres cellules de la même manière que je peux utiliser les fonctions natives, par exemple en entrant =myfunction(C1, C2, C3)

Était-ce utile?

La solution

Oui - il y a un tutoriel . Il suffit d'utiliser les fonctions javascript par son nom dans votre feuille de calcul. Définir les utiliser Outils> éditeur de script.

Méfiez-vous des restrictions de nom; Je suis confus par le comportement des fonctions que j'ai créé avec des noms comme « la fonction x10 () {} » ne pas être trouvé. Changement de nom à un nom plus fixé il. Il existe des règles probablement pour ce qui est documenté pas permis, mais je ne sais pas où ils sont.

Autres conseils

Je suis un "newbee". Mais est mon expérience que vous ne pouvez accéder à une « cellule » via l'objet « gamme ». Vous devez définir la plage comme une seule cellule. Par exemple « A1: A1 », vous donnera accès à la cellule « A1 »

.

A DISTANCE est un objet associé à une « feuille ». Une feuille est un objet associé à une « feuille de calcul ».

Voici quelques exemples de code d'accès à la cellule A1 de la feuille active actuelle:

var cell_A1 = SpreadsheetApp.getActiveSheet().getRange("A1:A1");

De là, vous pouvez passer l'objet comme tout autre paramètre.

myFunction(cell_A1);

La fonction de réception doit « savoir » qu'il traite d'une « portée ». Elle ne peut accéder à ses valeurs en appelant « méthodes » associées au objet « plage ».

Attention! Une « gamme » peut être constituée de plus d'une cellule. votre appelé fonction doit tester pour voir qu'il fonctionne avec une seule cellule. Si vous passez une gamme de plus d'une cellule, votre fonction peut-être pas agir de la manière que vous attendez.

Les deux méthodes d'un objet de gamme: "getNumRows ()" et "getNumColumns ()" retourne le nombre de lignes et de colonnes dans un objet de gamme.

En général, si vous utilisez des méthodes qui sont limitées à la modification ou l'accès à une seule cellule, et fonctionner sur un ensemble de plus grande gamme, la fonction ne sera réalisée sur l'élément de cellule supérieure gauche. Mais fais attention. Pendant que tu pourrait supposer une méthode ne changera une seule cellule, il peut effectivement affecter toutes les cellules de la plage. Lisez la documentation de près.

Il existe une autre méthode pour obtenir une gamme d'une seule cellule. son instruction ressemble à ceci:

var cell_B2 = SpreadsheetApp.getActiveSheet().getRange(2, 2, 1, 1).

Les deux premiers paramètres dire la fonction « getRange » l'emplacement du cellule (en ligne, le format de colonne). Les deux seconds paramètres définissent le nombre de « lignes » et « colonnes » de associées à la plage. En les fixant à la fois « 1 », vous accédez à une seule cellule.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top