繁体   English   中英

Google Apps电子表格脚本会随机停止?

[英]Google Apps Spreadsheet Scripts Randomly Stopping?

我编写了一个简单的Google Apps Spreadsheet脚本,该脚本在某些行中获取详细信息并将其转换为单个列表; 一切都很简单。 问题是脚本在随机点停止,循环永远不会完成 - 没有错误消息,脚本编辑器顶部的消息仍然表明它正在运行,当它已经明显停止时。

我最初认为它可能是以某种方式受到限制,但是随机停止点(有时在源表行6x,有时在7x,有时很好到数百)并且缺少错误消息暗示不然。

任何人都可以协助我解决为什么会这样吗? 是因为我是从脚本编辑器窗口运行的吗? 还有其他原因(可能是网络问题)应用程序脚本可能会停止运行,如果是这样,它可以在后台或类似程序中运行以防止这种情况吗?

谢谢!

function convertTrimsToList(){
  var ss = SpreadsheetApp.openById("[REDACTED]");
  var sheet = ss.getSheets()[0];
  var newss = SpreadsheetApp.create("MMT List");
  var newsheet = newss.getSheets()[0];

x = 1; z = 1; i = 1; q = 1; while (sheet.getRange(x,1).getValue() != "") { sheet.getRange(1,6).setValue("Processing row " + x); y = 5; while (sheet.getRange(x,y).getValue() != "") { sheet.getRange(1,7).setValue("Processing row " + y); if (x != 1) { if (y == 5 && sheet.getRange(x,1).getValue() != sheet.getRange((x-1),1).getValue()) { i++ } } newsheet.getRange(z,1).setValue(i); newsheet.getRange(z,2).setValue(q); newsheet.getRange(z,3).setValue(sheet.getRange(x,y).getValue()); z++ y++ } if (x != 1) { if (sheet.getRange(x,3).getValue() != sheet.getRange((x-1),3).getValue()) { q++ } } else { q++ } x++ } }

你的代码效率很低。 每次拨打服务的费用都很高。 这可能是您的代码突然停止的原因。 一种更有效的方法是将所有数据读入2D数组,然后在两个嵌套循环中一次性写回电子表格。

事实证明,这与此处发生的问题相同: 在Google Apps脚本中超过最长执行时间 - 不确定为什么我没有收到错误消息,但似乎是同样的问题,所以我重构了我的代码纠正它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM