【问题标题】:Google sheets script getRange arguments problem谷歌表格脚本getRange参数问题
【发布时间】:2019-08-21 18:07:38
【问题描述】:

我正在 Google Tabs 中编写一个小脚本来监视一列,当该列中的任何单元格发生更改时,它会将当前日期写入已更改单元格旁边的单元格。

我一直在十几个网站上寻找解决方案并相应地修改了我的代码,但我一直遇到同样的问题。如果我提供一个明确的单元格作为参数,.getRange() 脚本可以正常工作,比如 .getRange('I3'),但是当我尝试使用坐标而不是,例如 .getRange(3,9) 时它什么也不做。这确实是个问题,因为我需要使用已更改单元格的行号将日期写入它旁边的单元格。

function onEdit(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var editedCell = sheet.getActiveCell();

  if(editedCell.getColumn() == 9){

    var date = sheet.getRange('J2'); //current date is in cell J2
    var row = sheet.getRange(editedCell).getRow();
    sheet.getRange(row,10).setValue(date);
  }
}

我尝试将代码分解为更小的位,以找出哪个部分一直失败,并发现 .getRange 既不接受变量也不接受整数值作为坐标。它只对单元格进行操作,而在我搜索的每个论坛上都使用了坐标。

我愿意接受有关此问题的任何建议。

祝你有美好的一天!

【问题讨论】:

标签: google-apps-script


【解决方案1】:

试试这个:

function onEdit(e){
  if(e.range.columnStart==9){
    e.range.offset(0,1).setValue(new Date());
  }
}

【讨论】:

  • 谢谢!这工作得很好。我坚持使用经典方式,但这更优雅:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多