5 votos

Cómo establecer el valor de una celda de Numbers mediante AppleScript

Estoy tratando de escribir un número script (para hacer este ), en el que necesito cambiar el valor de una celda.

Sin embargo, si hago algo como

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

entonces me sale el error

 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

pero no contiene información sobre por qué no puede fijar esa celda. El documento, la hoja y la celda existen. no puede establecer esa celda. El documento, la hoja y la celda existen.

Supongo que esto puede depender de mi hoja de cálculo en particular, pero ¿es esta la forma correcta de establecer el valor de una celda, y si es así, qué más puedo hacer para entender por qué no funciona?

0 votos

Estoy pensando en lo que tienes debe pero no estoy frente a un Mac en este momento, así que no puedo jugar con esto. Si alguien más no interviene antes de que yo vuelva a estar delante de un Mac, lo probaré en mi lugar. Estoy bastante seguro de que el código de error que recibes se refiere a la denegación de permisos de escritura en el archivo. ¿Hay algo que pueda explicar por qué se te deniega el permiso para establecer el valor? ¿Se está ejecutando Numbers? ¿Está la hoja de cálculo abierta? ¿Hay algo más?

0 votos

@Monomeeth gracias por investigarlo. El archivo existe y está abierto en Numbers. Actualmente es el documento más frontal, y se guarda en una subcarpeta de mi carpeta Documentos, donde no debería haber problemas con los permisos de los archivos.

0 votos

(Una cosa es que hay muchos otros documentos abiertos sin guardar, que no quiero guardar o cerrar actualmente. Tengo entendido que el "documento 1" siempre se refiere a la ventana más frontal, pero en realidad no puedo encontrar que declaró en cualquier documentación, y si estoy equivocado supongo que podría estar tratando de establecer una celda en uno de los otros documentos).

4voto

Monomeeth Puntos 139

He vuelto a estar delante de un Mac y he probado tu código y también me ha dado el mismo error, así que probablemente sea algo engañoso en cuanto a lo que realmente significa.

Sin embargo, he jugado un poco con tu script y he conseguido que el código funcione utilizando el siguiente código:

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

Sin embargo, ahora que he conseguido que esto funcione, sólo quería señalar que parece que se está codificando con fuerza la celda, etc. Es decir, si la posición cambia entonces el script no va a ser dinámico. Si esto es un problema para usted o no dependerá de lo que está tratando de hacer y cómo su hoja de cálculo Numbers está diseñado.

0 votos

¡Hurra! Sí, eso funciona - evidentemente especificar la tabla es el paso necesario que me había perdido.

0 votos

(Este es un hack rápido que definitivamente no necesita funcionar después de mañana, de lo contrario estaría haciendo esto correctamente en lugar de la codificación dura. Así que gracias por la rápida respuesta, que hará una gran diferencia y es muy apreciado).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X