仅在其值已更改的工作表上执行“ onedit”代码

时间:2018-08-16 13:15:40

标签: google-apps-script google-sheets triggers

我想仅在其值已更改的工作表上进行“ onedit”工作。

例如。)[sheet1]如果在第7列中输入一个值,则要在[sheet1]第6列中写入时间。
要么 [sheet2]如果在第7列中输入一个值,则要在[sheet2]第6列中写入时间。

并且不要在[sheet5]上工作。

但是我不想的时间也出现在[sheet2]和[sheet3]中。

请帮助我。

function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    ["sheet1", "sheet2", "sheet3"].forEach(function (e) {
        var sheet = ss.getSheetByName(e);
        var activeCell = sheet.getActiveCell();
        var col = activeCell.getColumn();
        var row = activeCell.getRow();
        if (col == 7 ) {
            sheet.getRange(row, col - 1).setValue(new Date()).setNumberFormat('MM-dd-hh-mm'); // change the display format to your preference here
        }
    }
)}

1 个答案:

答案 0 :(得分:0)

为什么对工作表名称使用硬编码的字符串?只需检查传递给onEdit(e)函数的事件对象的属性即可获取已编辑的工作表:

function onEdit(e) {

   //Get the edited range
    var editedRange = e.range;

    //Get the sheet 
   var editedSheet = editedRange.getSheet();
}