【问题标题】:Return a value to a cell in google spreadsheet with an onEdit trigger使用 onEdit 触发器将值返回到谷歌电子表格中的单元格
【发布时间】:2018-12-29 15:57:44
【问题描述】:

我基本上是在尝试制作一个脚本,当单元格C4 被更改或编辑时,它将变量“日期”返回到单元格L4

 function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var date = Utilities.formatDate(new Date(), "GMT+1", "yyyy/MM/dd");
  var cellAddress = e.range.getA1Notation();

  if ( CellAdress === 'C4' ) {
    var range = sheet.getActiveSheet().getRange('L4');
    var nrange = sheet.setActiveRange(range);
    nrange = date
  }
}

我知道最后一部分不起作用,但我无法弄清楚如何正确使用这些功能,一直在寻找一段时间,但找不到与使功能更改单元格精确相关的任何内容.

【问题讨论】:

  • 因为变量名区分大小写,“cellAdress”与“CellAddress”不同。 “CellAdress”未定义,因此不能等于“C4”。您通过 sheet.getRange(A1Notation) 获取范围,并通过调用 range.setValue(value) 在单个单元格中设置值
  • @AntonDementiev 感谢您指出我看不到的明显情况。我已尝试应用您的修复程序,但它仍然无法正常工作。我开始拔头发,因为我不知道哪个是错的。虽然我认为这可能与这一行有关:var cellAddress = sheet.getRange.getA1Notation();
  • 您可能会受益于使用笔和纸来描述您的脚本(或以其他方式向无生命的对象详细解释它)。逐段遍历(句点和控制字符是很好的分段分隔符)并描述那段是什么:原始值?一个类实例?类对象的方法?引用原始对象或类对象的变量?查看 Apps 脚本参考文档也是一个好主意(包括讨论提供给简单触发器函数的事件对象的页面,例如 onEdit

标签: javascript datetime google-apps-script google-sheets


【解决方案1】:

在任何工作表上编辑 C4 时将新的 Date() 字符串写入 L4

请注意,只要在任何工作表上进行任何编辑,就会调用此函数。由于此函数未指定工作表,因此编辑任何工作表上的单元格 C4 将设置该工作表上 L4 的值。因此,我建议您添加一些工作表限制,如 cmets 所示。

function onEdit(e) {
  var rg=e.range;
  var sh=rg.getsheet();
  var row=rg.getRow();
  var col=rg.getColumn();
  if(col==3 && row==4){//Page Restrictions Added: if(sh.getName()=='sheetname' && col==3 && row==4){
    sh.getRange(4,12).setValue(Utilities.formatDate(new Date(), "GMT+1", "yyyy/MM/dd"));
  }
}

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多