Функция автозапуска - PullRequest
       18

Функция автозапуска

0 голосов
/ 03 января 2019

Я сделал пользовательскую функцию в скрипте Google, Любопытно, что каждый раз, когда я запускаю другой скрипт Google, эта функция запускается снова ...

Я не знаюне понимаю этого ... как функцию, после ее ввода результат должен быть статическим, но он меняется ...

Например, когда вы используете нестандартную функцию, такую ​​как sum,он отображается в виде числа и не меняется, если вы не решите изменить параметры ...

Более подробная информация, я не использую код onEdit().

Как я могу один раз запустить пользовательскую функцию, например, когда я пишу ее впервые только в ячейке?

Мой код такой:

'/**
*
* 
* @customfunction
*/
function CreateID(row) {

  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Relationships");
  var BI = BatchID(row);
  var data1 = ss.getRange('B:B').getValues();
  var data2 = ss.getRange('G:G').getValues();
  var Max = getMaxInColumn();
  var RoleName = SearchRoleName(row);
  var count = 0;

  for(var i = 0;i<row;i++){

     if(data1[i] == RoleName){

           if(data2[i] == Max){
           count = count +1;

           } // close 1.1.1 IF
         } // close 1.1 IF

  }
     Logger.log(count);

     if(count<BI){

     return Max;

     }else if(count>=BI){

     return Max+1;
     count = 0;
     Max=getMaxInColumn();
     }
    }'

И пример может быть таким: у Banana есть партия 4, а у Orange партия 3, поэтому у меня есть два столбца

Column 1 FRUIT   Column 2 ID 
Banana           1
Banana           1
Banana           1
Banana           1
Orange           2
Orange           2
Orange           2 
Banana           3
Orange           4
Banana           3

Но когда я запускаю другую функцию, даже если в другом проекте в той же электронной таблице эти числа не сохраняют ее значения, я понимаю, что она запускается снова ...

Спасиботак много!

1 Ответ

0 голосов
/ 03 января 2019

Все пользовательские функции находятся в глобальной области видимости и, следовательно, загружаются каждый раз, когда вызывается другая функция.Используйте отдельный проект для пользовательских функций.

Файл> Создать> Проект

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