google apps script script教學 當另一個單元格更改時,將當前日期輸入到單元格中



google spreadsheet script教學 (3)

我有一個Google電子表格,用於從客戶端跟踪為應用程序請求的配置信息的狀態。 例如文本去按鈕。 我有一個頂部的“狀態”列和單元格中的“行範圍”數據驗證在下面的行。 使用的範圍有'與客戶','與我','完成'。 我也有一個列的權利,我用手動添加上一次狀態更改日期。 我想要的是將日期自動更改為當天的日期,當我改變狀態。 我相信可以用腳本來完成,但我以前從來沒有用過。


Answer #1
     column 'Status'    column 'date'
row 'List from Range'   12-08-20014
row 'Data Validation'   -----------

範圍{'與客戶','與我','完成'}

好的,如果你打開你的腳本編輯器,並添加下面的代碼,用相關的值替換大膽的條款。 onEdit()應該不需要觸發器,因為它是一個“特殊”函數,除非你共享表單並需要使用開發人員權限運行。

onEdit() {
  var sheet      = e.source.getActiveSheet();
  var col        = activecell.getColumn();     //  numeric value of column, ColA = 1
  var row        = activecell.getRow();        //  numeric value of row
  if (col == PUT IN THE NUMBER OF YOUR COLUMN 'Status') {
    sheet.getRange(row, col+1) = Date();
}

Answer #2

另一個答案從一個好主意開始,但不幸的是建議的代碼不起作用,因為它有許多基本的錯誤(顯然它沒有測試...)

所以這是一個簡單的版本:

function onEdit(e) {
  var sheet      = e.source.getActiveSheet();
  var activeCell = sheet.getActiveCell();
  var col        = activeCell.getColumn();
  var row        = activeCell.getRow();
  if (col == 2 ) { // assuming status is in column 2, adapt if needed
    sheet.getRange(row, col+1).setValue(new Date()).setNumberFormat('MMM dd yyyy');// change the display format to your preference here
  }
}

Answer #3
function onEdit(e) {
   var sheet      = e.source.getActiveSheet();
   var activeCell = sheet.getActiveCell();
   var col        = activeCell.getColumn();
   var row        = activeCell.getRow();
   if (col == 2) {
     sheet.getRange(row, 1).setValue(new Date()).setNumberFormat('dd/MM/yyyy H:m:s');
  }
}




google-spreadsheet