我提前为这个问题道歉 - 这似乎是如此基本但我无法自己解决,或者在互联网上找到任何可以回答我问题的地方。
我的背景
直到最近,当我将工作转移到使用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)。
就像我之前说过的那样,我为可能采取匆匆做事的方式并提出初学者问题而道歉!
非常感谢提前。
答案 0 :(得分:0)
在Google电子表格中构建的修订历史记录不是解决问题的更好方法吗? https://support.google.com/docs/answer/190843?hl=en