需要一个脚本来检测单元格的数值何时更改,并更改行颜色



我目前正在使用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

最新更新