编辑时自动加盖时间戳:范围

时间:2019-01-15 20:24:36

标签: google-apps-script google-sheets

我不太擅长编写脚本,因此我已经在这里寻求帮助。我有一个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);
   };
 };
}

1 个答案:

答案 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);
    }
}