首页 > 解决方案 > 在谷歌表格中自动填充日期

问题描述

当我输入部署在 Y 列(25)中时,我试图将日期填充到谷歌表的 AC 列(29)中。这是我当前创建的脚本,无法弄清楚为什么它不起作用。

函数 onEdit(e) {

var colToWatch = 25, colToStamp = 29;
var valueToWatch = "Deployed"; 
if (e.range.columnStart === colToWatch && (e.value === valueToWatch || typeof e.value == 'object'))
e.source.getActiveSheet()
    .getRange(e.range.rowStart, colToStamp)
    .setValue(typeof e.value === 'object' ? null : new Date());

}

标签: google-apps-scriptgoogle-sheets

解决方案


columnStart()并且rowStart()不是 Google Apps 脚本中 Range 对象可用的方法。您需要使用getColumn()andgetRow()来代替。鉴于您已经在使用 ,并且它未在您的问题描述中列出,因此似乎没有必要多次检查值类型===,因此我将其删除。此外,该typeof值必然是一个字符串——它永远不会是一个对象。

function onEdit(e) {
  var colToWatch = 25, colToStamp = 29;
  var valueToWatch = "Deployed"; 
  if (e.range.getColumn() === colToWatch && e.value === valueToWatch) {
    e.range.getSheet().getRange(e.range.getRow(), colToStamp).setValue(new Date());
  }
}

推荐阅读