'for loop'根据分钟时间触发增量作为自定义计时器

时间:2015-10-19 17:21:31

标签: google-sheets

我并不擅长与计算机有关,并试图在VBA中创建计时器并在那里遇到障碍(宏在共享时会失去功能)我尝试使用Google表格创建相同的东西,所以使用共享工作表变得更容易,但现在有一组不同的问题:

1)我的计时器实际上不是一个计时器,而只是一个'for循环',它基于分钟时间触发递增,因此每个后续单元计时器越多,单元越慢。

2)当单元定时器运行一段时间后,定时器自动停止并给出错误消息:

  

使用太多计算机时间服务一天

或有时

  

超过最长执行时间

然后我必须手动触发计时器或等待分钟时间触发再次触发,这将使该表无用。

如果有人愿意帮助这个旧计时器,我会粘贴下面的代码:

makelist()在另一张纸上存储单元格位置,以查找使用“开始”按钮调用此函数的单元格

function makelist() {
 var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var cell = ss.getActiveCell();
 var r = cell.getRow();
 var c = cell.getColumn();
 var list = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
 var i = 1;
 var cell=list.getRange(1,1);
 while( cell.getValue()!= ""){
  i++;
 cell=list.getRange(i,1);
 }
 cell.setValue(r);
 cell=list.getRange(i,2);
 cell.setValue(c);
 }

dellist()删除从列表中按下StopButton的特定单元格位置。

function dellist(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = ss.getActiveCell();
  var r = cell.getRow();
  var c = cell.getColumn();
  var list = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
  var i = 1;
  var cell1=list.getRange(1,1);
  var cell2=list.getRange(1,2);
 while( cell1.getValue() != ""){
  if(cell1.getValue() == r && cell2.getValue() == c){
  list.deleteRow(i);
  }
  i++;
  cell1=list.getRange(i,1);
  cell2=list.getRange(i,2)
  }
  }

addtime()为位置存储在列表中的所有单元格增加活动单元格值。

function addtime(){
 var s1=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
 var s2=SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
 var r,c,value,n;
 for(n=1;n<=60;n++)
 { 
  var i=1;
  var cell=s2.getRange(1,1);
  var cell1=s2.getRange(1,2); 

while(cell.getValue()!="")
 {

 r=cell.getValue();
 c=cell1.getValue();
 cell3=s1.getRange(r,c);
 value=cell3.getValue();
 cell3.setValue(value+1);
 i++;
 cell=s2.getRange(i,1);
 cell1=s2.getRange(i,2);
 }
 }    
 }

1 个答案:

答案 0 :(得分:0)

您应该创建一个与项目关联的自定义脚本,编写您需要的功能,然后在工作表更改时设置触发器:

On change triggers

您可以在此处找到有关自定义脚本功能的更多信息:https://developers.google.com/apps-script/guides/sheets/functions