我目前正在使用Google Sheets创建一个库存系统,在最后一个障碍处遇到了一个问题。我使用条件格式来调整行的颜色等。。。。当从"在购物车上更新?"列中选择了某个下拉选项时,但我需要一个脚本(因为仅使用条件格式是不可能的)来检测"QTY"单元格何时从其当前值更改/更新(更新为任何值,而不仅仅是特定值)。
我浏览了谷歌的25页,以及StackOverflow上的无数帖子,但都无济于事。
这是当前系统的图像。
库存单图像
因此,基本上,当用户更改库存项目的数量时,行应该更改颜色。
如果有人知道我可以使用的脚本,或者可以为我指明谷歌电子表格解决方案的正确方向,那就太好了。
一些脚本可能会有所帮助:
function onEdit(t) {
var workSheetName = 'Sheet1'; // change sheet name to yours
var targetRangeAddress = 'E2:E'; // change if needed
var ss = SpreadsheetApp.getActiveSheet();
var sn = ss.getName();
if (sn == workSheetName) {
var myr = ss.getRange(targetRangeAddress);
var tr = t.range;
if (t.oldValue != tr.getValue() && t.oldValue != undefined) {
if (RangeIntersect(tr, myr)) {
var cr = ss.getRange(tr.getRow(),1,1,ss.getLastColumn());
cr.setBackgroundRGB(200, 200, 200); // change if needed
}
}
}
}
function RangeIntersect(R1, R2) {
var LR1 = R1.getLastRow();
var Ro2 = R2.getRow();
if (LR1 < Ro2) return false;
var LR2 = R2.getLastRow();
var Ro1 = R1.getRow();
if (LR2 < Ro1) return false;
var LC1 = R1.getLastColumn();
var C2 = R2.getColumn();
if (LC1 < C2) return false;
var LC2 = R2.getLastColumn();
var C1 = R1.getColumn();
if (LC2 < C1) return false;
return true;
}
或者,只需将列(E:E)值复制到它旁边的coulmn(F:F),并使用公式为所有表范围设置条件格式规则:=$E2<>$F2