Глобальные переменные в onEdit / onOpen - PullRequest
1 голос
/ 08 апреля 2020

У меня к вам вопрос - как объявить глобальную переменную / publi c, которая будет работать в onEdit (evt)?

Я хочу установить переменные, когда документ будет опровергнут (не каждый раз, когда что-то будет редактироваться через функцию onEdit)

var cbx_kod = "some initial val";
var cbx_Nazwa = "some initial val";
var cbx_Ilosc = "some initial val";

function onOpen(evt) {

     //lets set them
     cbx_kod = something.getValue(); 
     cbx_Nazwa = something.getValue();
     cbx_Ilosc = something.getValue();

}

function onEdit(evt) {

//code

   if(col == cbx_kod ){
   //something
   }
}

Проблема в том, что это не работает. Когда я открываю книгу - она ​​работает, пока я не отредактирую somenthing. При открытии установить правильные значения, затем, когда я редактирую его - значения переходят в исходное значение.

1 Ответ

1 голос
/ 08 апреля 2020
  • Переменные, установленные в области действия функции onOpen, сохранят присвоенные значения только внутри этой функции
  • onEdit - это отдельная функция, которая не взаимодействует с onOpen.
  • Он будет использовать переменные, определенные глобально (в начале вашего скрипта, независимо от onOpen), если вы не дадите им новое определение внутри onEdit

Что вы можете сделать для связи между onOpen и onEdit

  • Использовать propertiesService
  • Это позволяет вам устанавливать значения переменных в кеш, который можно получить, когда вы нужно

Образец

var scriptProperties = PropertiesService.getScriptProperties();

//to be run once
function myStartFunction(){
    scriptProperties.setProperty('cbx_kod', '"some initial val"');
}

function onOpen(evt) {
     //lets set them
     cbx_kod = something.getValue(); 
     scriptProperties.setProperty('cbx_kod', cbx_kod);
}

function onEdit(evt) {
  var cbx_kod = scriptProperties.getProperty('cbx_kod');
   if(col == cbx_kod ){
   //something
   }
}

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