Вызовите функцию из значения ячейки, затем запустите функцию - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу вызвать функцию из значения ячейки, а затем запустить эту функцию. В приведенном ниже сценарии A45 на активном листе содержит функцию, которую я хочу запустить. Текст в A45 - «RunScript1 ()», однако это изменится в зависимости от используемого листа.

function GetScript(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var cell1 = sheet.getRange('A45').getValue();
cell1   //// help here please ////
}

Заранее спасибо.

1 Ответ

2 голосов
/ 24 февраля 2020

Изменить текст на имя функции без скобок: RunScript. Затем вы можете использовать

this[cell1]();

this относится к глобальному пространству имен и содержит имена функций. Поэтому к этой функции можно получить доступ и выполнить.

Несмотря на то, что она ограничена именем функции, обратите внимание, что это предоставляет вашей учетной записи произвольный код для запуска с листа. Если вы поделились этим листом, любой, у кого есть злые намерения, может заставить вас выполнить произвольный код, например, удалить свою почту или отправить письмо от имени вас. Следовательно, этого метода желательно избегать. Вместо этого используйте пользовательские меню или предварительно написанный сценарий onEdit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...