如何更改编辑单元格上方单元格的背景颜色(Javascript、Google电子表格)

How to change the background colour of the cell above the edited cell (Javascript, Google Spreadsheets)

本文关键字:单元格 Javascript Google 电子表格 颜色 背景 编辑 何更改      更新时间:2024-02-15

我提前为这个问题道歉——这个问题看起来很基本,但我自己也弄不清楚,也找不到任何能回答我问题的东西。

我的背景

我通常习惯于使用excel,直到最近,我把工作转到了一个使用谷歌文档的部门。我对Javascript的了解是非常基础的,这是基于我在过去4周尝试编写一些基本代码时遇到的东西。

我正在处理的工作表的背景

我们有一大张带有相关信息的名字表,输入到每一行。因此,1行=1人。每行从A列到T列。

我的老板希望保留任何历史数据,非常像数据库。我知道电子表格不是最好的地方,但我对数据库软件的了解不如Javascript。作为一个临时解决方案,我所做的是创建一个额外的列(U列:存档),当输入"是"时,它会将整行剪切并粘贴到名为Archive的工作表中。然后,它还会删除留下的空行,保持表格的整洁。

请参阅此处的代码(出于示例目的,将工作表名称更改为工作表1):

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
if(s.getName() == "Sheet1" && r.getColumn() == 21 && r.getValue() == "yes") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Archive");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}

我现在想做什么(以及我需要代码做什么)

我的同事们希望能够查看归档表,并一目了然地看到哪个单元格被更改了。我们认为最好和最简单的方法是突出显示单元格。

但是,在归档行之前,我们必须复制它,在下面插入一行并粘贴复制的数据。然后,我们更改有错误数据的单元格,然后用旧数据归档行(这样我们就可以记录工作表生命周期中任何时候保存的所有数据)。在T列中,在归档之前,我们还输入了今天的日期,这样我们就可以知道信息是何时更改的。

所以-我需要一个代码,可以更改正在编辑的单元格下面的单元格(这将包含旧数据),但不能更改列T或U(所以a:S)。

就像我之前说的,我为这种笨拙的做事方式和问初学者的问题道歉!

非常感谢。

在谷歌电子表格中构建的修订历史不是解决问题的更好方案吗?https://support.google.com/docs/answer/190843?hl=en.