Я бы хотел попросить вас о помощи, потому что я в тупике ...
Я использую редактор скриптов google sheet и пытаюсь создать собственное меню с пользовательскими функциями. Однако я хочу создать библиотеку, которая может быть подключена к другим листам для других пользователей, и она будет обновляться автоматически при создании новой версии. Проблема начинается, когда я хочу определить ее как «пользовательскую функцию» для меню.
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addSubMenu(
ui.createMenu('clipboard')
.addItem('copy', 'menuItem1')
.addItem('paste', 'menuItem2')
)
.addToUi();
function menuItem1(){
bla,bla,bla
}
function menuItem2(){
bla,bla,bla
}
В меню я могу объявить только имя функции, но это означает, что всякий раз, когда в меню появляется новая функция, пользователь должен вводить ее вручную.
ui.createMenu('Custom Menu')
.addSubMenu(
ui.createMenu('clipboard')
.addItem('copy', 'menuItem1')
.addItem('paste', 'menuItem2')
)
.addSeparator()
.addSubMenu(
ui.createMenu('merge')
.addItem('merge', 'menuItem3')
.addItem('unmerge', 'menuItem4')
)
.addToUi();
function menuItem1(){
bla,bla,bla
}
function menuItem2(){
bla,bla,bla
}
function menuItem3(){
bla,bla,bla
}
function menuItem4(){
bla,bla,bla
}
Я не хочу этого. Я хочу создать список функций, а затем каким-то образом автоматически включить его в файл при обновлении библиотеки ... но я не могу включить его в редактор сценариев Google, когда я использую библиотеку, мне нужно использовать имя метки библиотеки
ml = MyLibrary then ml.menuItem1.
Я должен использовать только
menuItem1
, а не ml.menuItem1
Я ищу способ как-то включить этот файл, но лучше всего мне было бы определить функцию из строки, но не выполнять ее.
function listOfFunctions(){
var functionString1 = "function menuItem1(){ blablabla }";
var functionString2 = "function menuItem1(){ blablabla }";
return functionString1 + functionString2;
}
затем как-то разобрать это:
function menuItem1(){ blablabla };
и затем выполните его, когда я захочу.
menuItem1()
или menuItem2()
Если я выполню эту строку через eval (), функция будет выполнена, и я просто хочу ее определить. Я могу выполнить его позже с помощью триггеров.
ооооо, вы думаете о любой помощи, пожалуйста ???