【发布时间】:2020-11-06 16:58:54
【问题描述】:
我有一个系统生成的电子表格,当订单号中有多个商品时,它会输入空白单元格。例如,如果订单 1 有三个项目,我将有三行完全填满,但只有一个带有日期。表头是这样的:
Order Number | User | Date | Item
我附上了来自示例数据集的示例图像:
我尝试了以下代码,它可以很好地完成这项工作,但我无法完成任务,因为每次运行脚本时执行都会超时(它在行号 1,000 附近停止)。我的电子表格有大约 3,000 行并且增长缓慢。我阅读了一些有关尝试使代码更高效的说明,但对我来说它已经非常有效(至少将其与 VBA 进行比较)。 感谢您提供任何帮助!
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var last = sheet.getLastRow();// get last row number
for (i = 2; i < last; i++) {
var info = sheet.getRange(i, 3);
Logger.log(info);
if (info.isBlank()) {
var data = sheet.getRange(i-1, 3).getValues(); //copy value from cell above with date
sheet.getRange(i, 3).setValues(data); //paste value on empty cell
}
}
}
【问题讨论】:
标签: javascript loops google-apps-script optimization google-sheets