自动运行功能

时间:2019-01-03 20:05:38

标签: javascript google-apps-script custom-function

我已经在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();
     }
    }'

一个例子可能是这样的: 香蕉有4个批次,橙有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 :(得分:2)

所有自定义函数都在全局范围内,因此,每次调用另一个函数时都会加载它们。将单独的项目用于自定义功能。

  

文件>新建>项目