Установка значения ячейки Numbers с помощью AppleScript

3

Я пытаюсь написать скрипт чисел (для этого , как это происходит), в котором мне нужно изменить значение ячейки.

Однако, если я сделаю что-то вроде

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

тогда я получаю ошибку

 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

но это не содержит информации о том, почему он не может установить эту ячейку. Документ, лист и ячейка существуют.

Я предполагаю, что это может зависеть от моей конкретной таблицы, но является ли это правильным способом установки значения ячейки, и если да, что еще я могу сделать, чтобы понять, почему она не работает?

Натаниель
источник
Я думаю, что у вас должно получиться , но сейчас я не перед Mac, так что не могу с этим поиграть. Если кто-то еще не вмешивается до того, как я вернусь к Mac, я попробую в конце. Я уверен, что код ошибки, который вы получаете, ссылается на то, что вам не разрешено писать файлы. Есть ли что-нибудь, что может объяснить, почему вам будет отказано в разрешении установить значение? Номера работают? Электронная таблица уже открыта? Что-то другое?
Мономет
@ Мономет, спасибо, что заглянул в него. Файл существует и открыт в Numbers. В настоящее время это самый передний документ, который сохраняется в подпапке папки «Мои документы», где не должно быть проблем с правами доступа к файлам.
Натаниэль
(Одна вещь, однако, состоит в том, что в настоящее время открыто много других несохраненных документов, которые я не хочу сейчас сохранять или закрывать. Насколько я понимаю, «документ 1» всегда ссылается на самое переднее окно, но на самом деле я не могу найти его указано в любой документации, и если я ошибаюсь, я предполагаю, что он может пытаться установить ячейку в одном из других документов.)
Натаниэль
Хм, я получаю похожие ошибки при попытке получить имя файла документа 1 или при попытке получить значение ячейки A1 на листе 1. Так что я думаю, что проблема с доступом к документу 1 вообще.
Натаниэль
например error "Numbers got an error: Can’t get cell \"A1\" of sheet 1 of document 1." number -1728 from cell "A1" of sheet 1 of document 1(я отредактирую все это в вопросе позже)
Натаниэль

Ответы:

3

Я снова перед Mac и попробовал ваш код, а также получил ту же ошибку, так что это, вероятно, несколько вводит в заблуждение с точки зрения того, что на самом деле означает.

Однако я немного поиграл с вашим сценарием и смог заставить код работать, используя следующий код:

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

Однако теперь, когда у меня все получилось, я просто хотел отметить, что вы, похоже, жестко программируете ячейку и т. Д. То есть, если позиция изменяется, сценарий не будет динамичным. Будет ли это проблемой для вас или нет, будет зависеть от того, что вы пытаетесь сделать, и от того, как разработана ваша электронная таблица Numbers.

Мономет
источник
Ура! Да, это работает - очевидно, что указание таблицы - необходимый шаг, который я пропустил.
Натаниэль
(Это быстрый взлом, который определенно не должен работать после завтрашнего дня, в противном случае я бы делал это правильно вместо жесткого кодирования. Так что спасибо за быстрый ответ, это будет иметь большое значение и высоко ценится!)
Натаниэль