我目前正在开展一个项目,我正在尝试根据用户在谷歌表中所做的更改填写“上次更新”日期。
我在同一个工作簿中有三个谷歌表。
我遵循了一个教程,该教程帮助我获得了我想要的东西,但是,当我在工作表中使用相同的代码时,它使用了我阅读 OnEdit 所做的最后一个代码。
正如你在下面看到的。如果用户更新工作表 1 中的 Column (Col) 1-17,则将最后更新的内容添加到 Row 中的 Col 18。
注意:下面的代码都在 1 个 .gs 文件中。
预期行为:
当我在 Sheet 1 中时,根据 Sheet1 中指定的更改和范围更新 Col 18(上次更新)。如果在工作表 2 中为相应的范围执行相应操作。表 3 相同。
请参阅下面的代码:
function onEdit(x) {
addTimeStampGlossary(x);
}
function onEdit(y) {
addTimeStampTables(y);
}
function onEdit(z) {
addTimeStampFields(z);
}
function addTimeStampGlossary(x){
// variables
var startRow = 2;
var ws = "Sheet1";
//get modified row and column
var row = x.range.getRow();
var col = x.range.getColumn();
if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 && row >= startRow && x.source.getActiveSheet().getName() === ws ){
x.source.getActiveSheet().getRange(row,18).setValue(new Date());
}
}
function addTimeStampTables(y){
// variables
var startRow = 2;
var ws = "Sheet2";
//get modified row and column
var row = y.range.getRow();
var col = y.range.getColumn();
if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 || col === 18 || col === 19 && row >= startRow && y.source.getActiveSheet().getName() === ws ){
y.source.getActiveSheet().getRange(row,20).setValue(new Date());
}
}
function addTimeStampFields(z){
// variables
var startRow = 2;
var ws = "Sheet3";
//get modified row and column
var row = z.range.getRow();
var col = z.range.getColumn();
if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 && row >= startRow && z.source.getActiveSheet().getName() === ws ){
z.source.getActiveSheet().getRange(row,17).setValue(new Date());
}
}