код вне функций не запоминается и не запускается каждый раз - PullRequest
0 голосов
/ 17 января 2020

У меня нет большого опыта программирования ... так вот мое сомнение. Я написал большую функцию onEdit в электронной таблице Google и поместил некоторый код вне этой функции, так что ему не нужно go просматривать этот код каждый раз, когда я редактирую ячейку. это просто переменные, содержащие различные листы, некоторые важные диапазоны и т. д. c. Я просто хочу, чтобы он один раз запустил этот скрипт и запомнил его. проблема в том, что каждый раз, когда я что-то редактирую, этот код перезапускается. Я попытался написать функцию «onOpen», но переменные, созданные внутри этой функции, не имеют области видимости вне функции onOpen. Я также попытался объявить переменные без значения, а затем добавить значения в функцию onOpen, которая запускается только один раз. это тоже не работает. я делаю что-то не так или это так, как это работает?

спасибо !!

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

1 Ответ

1 голос
/ 17 января 2020

В дополнение к тому, что сказал @TheMaster, Google Apps Script не имеет состояния. Это означает, что каждый вызов должен обрабатывать весь проект. Поэтому, когда ваша onEdit функция запускается, она обрабатывает все. Например:

var global = "hi";

function something(){ ... }

function onEdit()
{
    Logger.log(global);
    global = "bye";
}

something();

Каждый раз, когда срабатывает функция onEdit, она будет проходить через весь код. В этом примере каждый раз, когда запускается onEdit, он устанавливает global в hi, запускает something(), а затем запускает onEdit().

Надеюсь, это имеет смысл?

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