如何更改已编辑单元格上方单元格的背景颜色(Javascript,Google Spreadsheets)

时间:2015-02-19 15:38:36

标签: javascript database cell edit

我提前为这个问题道歉 - 这似乎是如此基本但我无法自己解决,或者在互联网上找到任何可以回答我问题的地方。

我的背景

直到最近,当我将工作转移到使用Google Docs的部门时,我才习惯使用excel。我对Javascript的了解非常基础,基于我在过去4周内遇到的尝试编写基本代码的内容。

我正在处理的工作表背景

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

我的老板希望保留任何历史数据,非常像数据库。我知道Spreadsheets不是最好的地方,但我对数据库软件的了解比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)。

就像我之前说过的那样,我为可能采取匆匆做事的方式并提出初学者问题而道歉!

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

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