我不太擅长编写脚本,因此我已经在这里寻求帮助。我有一个Google表格,我希望当范围(A1:L30)内的任何单元格发生更改/更新时,单元格(K17)都可以自动为其添加时间戳。
我只能找到特定单元格更新的脚本,它将自动为其旁边的单元格加上时间戳。这是我发现的代码示例:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 13 ) { //checks the column
var nextCell = r.offset(0, 1);
if( nextCell.getValue() === '' ) //is empty?
var time = new Date();
time = Utilities.formatDate(time, "GMT", "HH:mm:ss");
nextCell.setValue(time);
};
};
}
答案 0 :(得分:1)
执行此操作的关键是检查传入的event object-您的示例不执行此操作。一旦您可以检查事件,就可以看到被触摸的范围。然后将其与任何criteron进行比较(您位于A1:L30内,也就是说在Sheet1的前30行和12列中):
function onEdit(e) {
var editedRange = e.range; // This is what got edited
var editedSheet = editedRange.getSheet(); // Ranges belong to a sheet
if (
(editedSheet.getName() == "Sheet1") // correct sheet?
&& (editedRange.getColumn() <= 12) // column L is number 12
&& (editedRange.getRow() < 30) // We're on row 30 or less
) {
var time = new Date();
time = Utilities.formatDate(time, "GMT", "HH:mm:ss");
editedSheet.getRange("K17").setValue(time);
}
}