Я получаю эту ошибку, когда пытаюсь запустить свой код, чтобы иметь пользовательское меню. Мой код:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Menu')
.addItem('Candles','callCandles')
.addToUi();
}
Вы не должны вручную выполнять триггерную функцию. Этот конкретный активируется, когда вы открываете электронную таблицу.
Вы можете увидеть меню Candles
, созданное в верхней части строки меню. Вам просто нужно обновить страницу электронной таблицы, и вы увидите ее. Пожалуйста, внимательно прочитайте официальную документацию:
При запуске триггера onOpen или любой функции, вызывающей Class Ui из редактора скриптов Google Apps, произойдет сбой, если скрипт был открыт по ссылке, из https://script.google.com и т. д., но не из контейнер, даже если контейнер был открыт позже. Это также может произойти, когда пользовательский интерфейс редактора документов и редактор сценариев Google Apps каким-то образом потерял связь между активным документом, формой, слайдом или электронной таблицей и сценарием.
Обычно это исправляется закрытием скрипта и его повторным открытием из контейнера. По состоянию на сентябрь 2022 года это делается из меню «Расширения».
Очень редко может потребоваться перезагрузка веб-браузера, и еще реже потребуется перезагрузка компьютера.
Большое спасибо Рубену! После глубокого изучения проблемы с обычной ошибкой «DocumentApp.getUi().createMenu('Utilities')», которая не работает в течение нескольких часов, я немного узнал о вызове Class Ui, нравиться
Но я с облегчением решил проблему, просто закрыв документ и перезапустив браузер.
Остается вопрос: Как поиск «Не удается открыть ....getUi() из этого контекста» быстрее приводит к этому решению? Это может быть задача ИИ, которую нужно представить в приоритетном порядке, например, решения из 1. сначала, затем перезапуск и 2. функции триггера по времени позже.