【发布时间】:2018-08-14 17:49:50
【问题描述】:
我是一家企业,我使用 Gas 进行确认和管理,买家在我的商店购买了一些东西后,如果买家接受订单,我会打电话确认下单,我会在订单表的 C 列上写上 ok,我的代码会确定来自工作表 Inventory 的产品,并将减去从工作表 Order 上的 D 列创建的产品。但是我的代码运行时间很长,我不希望这样,例如,当我的两个员工同时打电话并且他们同时放好 GAS 不能计算速度足够快,它只是负 1,谁可以帮助我提高代码的运行时间或有其他解决方案。 这是我的代码
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DATA');
var range = e.range;
var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inventory");
var i, j;
if (range.getColumn() == 3 && (range.getValue() == "ok" || range.getValue() == "cancel")) {
var fullListStr = ss.getRange(range.getRow(), 4).getValue();
var listShirts = fullListStr.split(",");
for (i = 0; i < listShirts.length; i++) {
listShirts[i] = listShirts[i].trim();
}
var listCheck = s.getRange("F1:F5").getValues();
for (i = 0; i < listShirts.length; i++) {
for (j = 1; j < listCheck.length; i++) {
if (listShirts[i] == listCheck[j][0]) {
var row = j + 1;
var column = 5;
var currentProduct = s.getRange(row, column).getValue();
currentProduct--;
s.getRange(row, column).setValue(currentProduct);
break;
}
}
}
// var currentProduct = s.getRange(2, 5).getValue();
// currentProduct--;
// s.getRange(2, 5).setValue(currentProduct);
Logger.log(currentProduct)
Logger.log(listShirts);
Logger.log(listCheck);
}
}
这是我的床单
【问题讨论】:
-
什么是“很长时间”?
-
您需要在代码中添加一些 cmets,如果可以的话,您的电子表格的链接也可能有用。
-
@JayJenkins 对不起,我是新手,1 个月前我才刚刚学习编码
标签: google-apps-script google-sheets