谷歌应用程序电子表格脚本随机停止
Google Apps Spreadsheet Scripts Randomly Stopping?
我写了一个简单的谷歌应用程序电子表格脚本,它在一些行中获取详细信息,并将它们转换为单个列表;一切都很简单。问题是脚本一直在随机点停止,循环永远不会结束——没有错误消息,脚本编辑器顶部的消息仍然表明它正在运行,但它已经明显停止。
我最初认为它可能以某种方式被抑制了,但随机的停止点(有时在源工作表的第6行,有时在第7行,有时高达数百)和缺乏错误消息表明情况并非如此。
有人能帮我弄清楚为什么会发生这种事吗?是因为我在脚本编辑器窗口中运行它吗?是否有其他原因(可能是网络问题)导致应用程序脚本停止运行,如果是,是否可以在后台或类似情况下运行以防止这种情况发生?
谢谢!
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++
}
}
您的代码效率相当低。打给服务的每一个电话都很昂贵。这可能就是代码突然停止的原因。一种更有效的方法是将所有数据读取到二维数组中,然后在两个嵌套循环之后一次性写回电子表格。
事实证明,这与这里发生的问题相同:超过了谷歌应用程序脚本中的最长执行时间-不确定为什么我没有收到错误消息,但似乎是同样的问题,所以我重构了代码来纠正它。
- RequireJ无法随机加载脚本
- Drupal正在随机加载旧版本的脚本
- 在java脚本中选择的随机日期上添加一年
- 尝试在随机文本和图像脚本中添加样式/更改字体
- java脚本:交换技术,添加随机文本
- 当我点击一个按钮时随机选择一个声音来重现的脚本
- 脚本随机更改背景渐变色[但从特定范围]
- 谷歌应用程序电子表格脚本随机停止
- 在一个随机生成图像的PHP脚本中,为什么在一个页面上多次调用它总是生成相同的图像
- 使用javascript"随机引用“;脚本,但跨越两个独立的元素
- 在控制台上播放脚本时,如何进行随机选择
- 可以'我的单词随机化器脚本不能正常循环
- Javascript随机名称猜测者:无响应的脚本问题
- 随机报价脚本
- 如何让我的重定向脚本添加一个随机后缀来选择网站
- 用于生成具有随机颜色的 CSS 属性的脚本
- 随机引用超链接脚本
- Java 脚本随机图像禁用翻转和链接
- 一种脚本,它从数组中随机加载图像,在查看完所有图像之前不重复任何图像
- 嵌套JS脚本.美元.随机脚本后getScript失败