GAS排除执行宏的键

时间:2018-09-11 09:53:53

标签: spreadsheet gas

我在以下脚本上获得了很多帮助:THREAD

现在的问题是,脚本可以在每个单元格上完美运行。问题是,当我使用“删除”键清除单元格时,我希望它不起作用。现在,如果我按“删除”键,它将在“右单元格”中填充日期。

    function onEdit(e)
    {
      // condition to make sure you are not entering value in the date sheet
      if(e.source.getActiveSheet().getName() != "Dates" && e.range.rowStart > 2)
      {
        //grab the sheet where you wan't the date to be inserted.
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dates");
        //grab the cell where the date will be inserted 
        var cell = e.source.getActiveSheet().getRange(e.range.getRow(), e.range.getColumn() + 1);
        //create the actual date
        var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
        //set the value of the cell with the date
cell.setValue(now);
      }
    }

用户JSmith在这里给了我很多帮助。兄弟,再次寻求您的帮助。 (我欠您很多时间,因为我从未与GAS合作过)

1 个答案:

答案 0 :(得分:0)

尝试使用此代码,该代码适用于单列和一行/多行的范围。

  function onEdit(e)
  {
    var values = e.range.getValues();
    var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
    var newRange = e.range.getSheet().getRange(e.range.getRow(), e.range.getColumn() + 1,e.range.getLastRow() - e.range.getRow() + 1, 1);
    values.forEach(function (el)
    {
      if (el[0])
        el[0] = now;
    });
    newRange.setValues(values);
  }