禁用单元格或范围的onEdit触发器功能

时间:2013-08-01 11:43:00

标签: google-apps-script

我在整个电子表格中添加了“最新更新”的Google Apps脚本。此脚本自动将日期放在您正在编辑的行的最后一个单元格中。但我有一个标题行,我想要静态文本,当我尝试输入该行的最后一个单元格时,它会覆盖日期。

我似乎无法通过转到工具>来关闭它脚本编辑器。

1 个答案:

答案 0 :(得分:0)

您的问题并不具体,但听起来您正在使用onEdit触发器功能来设置“上次更新”列。

只检查当前行是否在标题内,然后退出触发器。像这样:

function onEdit(e)
{
  var rr = e.range;
  var ss = e.range.getSheet();

  var headerRows = 1;  // # header rows to ignore

  if (rr.getRow() <= headerRows) return;
  ...

这是你的onEdit,结合上面的建议。在其中一个触发功能中,您希望在检查是否应该拯救之前尽可能少地进行投资。您会注意到标题的检查位于函数的顶部,以提高效率。出于同样的原因,已经注释掉了不必要的行。

function onEdit(event) {
  // note: actRng = the cell being updated
  var actRng = event.range;
  var headerRows = 2;
  if (actRng.getRow() <= headerRows) return;

  var sheet = actRng.getSheet(); 
  //var index = actRng.getRowIndex();
  //var cindex = actRng.getColumnIndex();
  var dateCol = sheet.getLastColumn();
  var lastCell = sheet.getRange(index, dateCol);
  var date = Utilities.formatDate(new Date(), "GMT", "MM-dd-yy");
  lastCell.setValue("'" + date);
}