这是我第一次使用Google Script进行编程时,我无法弄清楚如何添加一个函数来规避Google超出处理时间的错误消息。能否请你帮忙?
程序获取订购的条形和品脱数量,并将它们引用到另一个工作表中,该工作表具有计算成本和输出值的计算器。非常感谢帮助
/**
*
*
*/
function STBIBOL()
{
var r = 6
var destclm = 11
var pintsclm = 105
var barsclm = 101
var spreadsheet_url = 'https://docs.google.com/spreadsheets/d/1cqgdo_pgJ4n0xhXqMah24g6jjv7sfl2o92k1pwXNUuo/edit#gid=532254312';
var sheet_name = 'BOLs Entered for Fulfillment';
var sheet_name1 = 'STBI Calculator';
var ss = SpreadsheetApp.openByUrl(spreadsheet_url);
var sheet = ss.getSheetByName(sheet_name);
var sheet1 = ss.getSheetByName(sheet_name1);
var lastRow = sheet.getLastRow();
for(i =1; i< 20; i++)
{
var rangeD = sheet.getRange(r,destclm)
var dest = rangeD.getValue()
var rangeS = sheet.getRange(r,pintsclm)
var pints = rangeS.getValue()
var rangeB = sheet.getRange(r, barsclm)
var bars = rangeB.getValue()
var range = sheet1.getRange(14,3)
range.setValue(dest)
var range2 = sheet1.getRange(11, 3)
range2.setValue(pints)
var range3 = sheet1.getRange(12, 3)
range3.setValue(bars)
var rangev = sheet1.getRange(8,3)
var value = rangev.getValue()
var range4 = sheet.getRange(r,110)
range4.setValue(value)
r = r + 1
}
}
答案 0 :(得分:2)
不是在循环的每次运行中多次调用GAS服务,而是导致执行失败,您只需在一次调用中获取整个范围,如下所示:
var range1 = sheet1.getRange(startRow, startColumn, numberOfRows, numberOfColumns);
如果第二张纸的范围与第一张纸具有相同的尺寸(相同的行数和列数),您可以简单地1)从原始纸张获取值作为二维数组
var values1 = range.getValues();
2)将值写入第二张
var range2 = sheet2.getRange(startRow, startColumn, numberOfRows, numberOfColumns);
range2.setValues(values1);