Присвоение значения объединенным ячейкам в Apple Numbers с помощью AppleScript

В рамках более длинного AppleScript я копирую строки из переменной списка в диапазоны объединенных ячеек в таблице Numbers 10.0. Например, если список называется form_filler, а первый диапазон объединенных ячеек — B6:Y7, я сначала попробовал:

set value of cell "B6" to item 1 of form_filler

Я думал, что к объединенным ячейкам обращаются по верхней левой ячейке. Но это делает что-то неожиданное: он помещает строку только в ячейку «B6» и изменяет диапазон объединенных ячеек на C6: Y7, исключая ячейку, в которую я только что вставил. Такое поведение постоянно происходит с различными объединенными ячейками по всей таблице. Затем я попытался:

set value of range "B6:Y7" to item 1 of form_filler

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

Я новичок в AppleScript, но вообще не программирую (например, Python). Что мне не хватает? Спасибо.


person Buffalo Chip    schedule 29.05.2020    source источник


Ответы (1)


Похоже, вам нужно повторно объединить эти ячейки. Вот код, который я только что протестировал, используя собственную структуру блока Tell; вы должны иметь возможность экстраполировать это (если вы включите свою структуру блока, я отредактирую свой код):

tell application "Numbers"
    set d to sheet 1 of document 1
    tell d
        set value of cell "B6" of table 1 of it to "test"
        merge range "B6:Y7" of table 1 of it
    end tell
end tell

Не уверен, что это можно назвать «обходным решением», но, похоже, оно работает, надеюсь, без каких-либо других проблем.

person CRGreen    schedule 29.05.2020
comment
Я поэкспериментирую с этим, но я сомневаюсь. Я заполняю подробно отформатированную страницу строковыми данными (форма страхового возмещения CMS-1500, если быть точным) для печати. Я поместил полноразмерное изображение CMS-1500 на лист Numbers и наложил на него таблицу с крошечными ячейками. Затем я объединил ячейки для наложения полей ввода формы, тщательно отформатировав объединенные диапазоны в соответствии со спецификациями полей формы. Если нет способа сохранить это форматирование, я не думаю, что хочу программно объединять ячейки; Я хочу, чтобы они объединились для начала. Спасибо хоть. - person Buffalo Chip; 30.05.2020
comment
@BuffaloChip - Да, вам следует поэкспериментировать с этим - с хорошим тестовым документом или, конечно, с адекватной резервной копией. Я нашел это решение; казалось, он сохранил форматирование предыдущего слияния. Теперь, когда мы знаем больше о том, чего вы пытаетесь достичь, мы можем заполнить некоторые пробелы, если это необходимо. Но мой ответ - это решение проблемы, которую вы опубликовали. И да, вам понадобятся объединенные ячейки в качестве дополнительного набора переменных. Не сложно настроить. - person CRGreen; 30.05.2020
comment
Мой скептицизм был необоснованным — это работает. Как вы говорите, он сохраняет форматирование. Этот подход добавляет новое значение к существующему значению в объединенном диапазоне, а не заменяет его. Но это легко исправить, предварительно очистив диапазоны. Спасибо еще раз. - person Buffalo Chip; 30.05.2020