【问题标题】:Having issue with slow timestamp script as well as required to excluded Sheet 1 & Sheet 2时间戳脚本慢且需要排除 Sheet 1 和 Sheet 2
【发布时间】:2020-11-09 01:07:17
【问题描述】:

我的时间戳脚本有点慢,也无法弄清楚如何排除特定的工作表(工作表 1 和工作表 2)

function onEdit(e) { 
  var row = e.range.getRow(); 
  var col = e.range.getColumn(); 
  var startRow = 2; 
  // var colName1 = 3; 
  // var colTime1 = 1; 
  // var colName2 = 09; 
  // var colTime2 = 11; 
  // var colName3 = 15; 
  // var colTime3 = 13; 
  // var colName4 = 21; 
  // var colTime4 = 22; 
  if(col == 3 && row >= startRow){ 
    e.source.getActiveSheet().getRange(row,1).setValue(new Date()); 
  } 
  if (col == 09 && row >= startRow){ 
    e.source.getActiveSheet().getRange(row,11).setValue(new Date()); 
  } 
  if (col == 15 && row >= startRow){ 
    e.source.getActiveSheet().getRange(row,13).setValue(new Date()); 
  } 
  if (col == 21 && row >= startRow){ 
    e.source.getActiveSheet().getRange(row,22).setValue(new Date()); 
  } 
}

寻求您的帮助

谢谢

【问题讨论】:

  • 拜托,你能提供更多关于它和清理 cmets 的细节吗?

标签: javascript performance dataframe google-apps-script time


【解决方案1】:
function onEdit(e) { 
  var excl=['Sheet1','Sheet2'];
  var sh=e.range.getSheet(); 
  if(excl.indexOf(sh.getName())==-1 && e.range.rowStart>1) {
    var dt=new Date();
    if(e.range.columnStart==3)sh.getRange(e.range.rowStart,1).setValue(dt); 
    if(e.range.columnStart==9)sh.getRange(e.range.rowStart,11).setValue(dt); 
    if(e.range.columnStart==15)sh.getRange(e.range.rowStart,13).setValue(dt); 
    if(e.range.columnStart==21)sh.getRange(e.range.rowStart,22).setValue(dt);
  }
}

【讨论】:

  • 嗨 Cooper,感谢您的友好回应,但仍然很慢,因为我使用相同的时间戳脚本在一张纸上运行了近 20 个标签,期待您的友好回应和帮助
  • 有时其中有 10 个同时处于活动状态
  • 我不知道为什么最后一个条件不能正常工作 if(e.range.columnStart==21)sh.getRange(e.range.rowStart,22).setValue(dt);
  • 根据我的经验,10 个使用 onEdit() 的用户可能无法可靠地工作
  • 相信我,我今天再次运行它仍然很慢?有没有办法让它更快一点?谢谢
猜你喜欢
  • 2018-12-24
  • 1970-01-01
  • 2023-03-29
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多