5 votes

Définition de la valeur d'une cellule Numbers à l'aide d'AppleScript

J'essaie d'écrire un script numérique (pour faire ce ), dans lequel je dois modifier la valeur d'une cellule.

Cependant, si je fais quelque chose comme

tell application "Numbers"
    activate
    tell document 1
        tell sheet 3
            set the value of cell "E1" to 1000
        end tell
    end tell
end tell

puis j'obtiens l'erreur

 error "Numbers got an error: Can’t set cell \"E1\" of sheet 3 of document 1 to 1000." number -10006 from cell "E1" of sheet 3 of document 1

mais il ne contient aucune information sur pourquoi il ne peut pas définir cette cellule. Le document, la feuille et la cellule existent tous.

Je suppose que cela peut dépendre de ma feuille de calcul particulière, mais est-ce la façon correcte de définir la valeur d'une cellule, et si oui, que puis-je faire d'autre pour comprendre pourquoi cela ne fonctionne pas ?

0 votes

Je pense que ce que vous avez debe Je ne suis pas devant un Mac en ce moment et je ne peux donc pas m'amuser avec ça. Si quelqu'un d'autre n'intervient pas avant que je sois de nouveau devant un Mac, je testerai de mon côté. Je suis presque sûr que le code d'erreur que vous obtenez fait référence au fait que les droits d'écriture sur le fichier ont été refusés. Y a-t-il quelque chose qui pourrait expliquer pourquoi vous n'avez pas le droit de définir la valeur ? Numbers est-il en cours d'exécution ? La feuille de calcul est-elle déjà ouverte ? Y a-t-il autre chose ?

0 votes

@Monomeeth merci de vous pencher sur la question. Le fichier existe et est ouvert dans Numbers. C'est actuellement le document le plus en avant, et il est enregistré dans un sous-dossier de mon dossier Documents, où il ne devrait pas y avoir de problèmes avec les permissions de fichiers.

0 votes

(Il y a cependant beaucoup d'autres documents non sauvegardés qui sont ouverts et que je ne veux pas sauvegarder ou fermer pour le moment. J'ai cru comprendre que "document 1" fait toujours référence à la fenêtre la plus en avant, mais je n'ai trouvé aucune indication à ce sujet dans la documentation, et si je me trompe, je suppose qu'il pourrait essayer de définir une cellule dans l'un des autres documents).

4voto

Monomeeth Points 61435

Je suis à nouveau devant un Mac et j'ai essayé votre code. J'ai également obtenu la même erreur, donc il est probablement un peu trompeur en termes de ce qu'il signifie réellement.

Cependant, j'ai un peu joué avec votre script et j'ai réussi à faire fonctionner le code en utilisant le code suivant :

tell application "Numbers"
  tell table 1 of sheet 3 of document 1
    set the value of cell 1 of column "E" to 1000
  end tell
end tell

Cependant, maintenant que j'ai réussi à le faire fonctionner, je voulais juste signaler que vous semblez coder en dur la cellule, etc. C'est-à-dire que si la position change, le script ne sera pas dynamique. Que cela soit un problème pour vous ou non dépendra de ce que vous essayez de faire et de la façon dont votre feuille de calcul Numbers est conçue.

0 votes

Hourra ! Oui, cela fonctionne - il est évident que la spécification de la table est l'étape nécessaire que j'avais manquée.

0 votes

(Il s'agit d'un hack rapide qui n'a absolument pas besoin de fonctionner après demain, sinon je le ferais correctement au lieu de le coder en dur. Merci donc pour cette réponse rapide, elle fera une grande différence et est très appréciée).

0voto

eplt Points 61

Faites-le avec une seule phrase. Pas besoin d'un récit imbriqué.

tell application "Numbers" to set document 1's sheet 1's table 1's cell "E1"'s value to 1000

Ou une solution plus générique de :

set documentName to "Document 1"
set sheetName to "Sheet 1"
set tableName to "Table 1"
set cellName to "D1"
set newvalue to "2000"

tell application "Numbers" to set document documentName's sheet sheetName's table tableName's cell cellName's value to newvalue

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X