填充单元格时自动添加当前日期

时间:2020-07-08 21:49:31

标签: google-sheets google-sheets-api

因此,我正在使用Google表格,并且具有Activecampaign集成,当新用户订阅时,该集成会添加新行。我想用用户信息添加当前日期-这样我就可以知道人们何时进入我的列表。

我有4个标签。我今天想要的那个叫做“ leadData”。

我尝试了这段代码,但是没有用:

function onChange(e) {
   var sheet = e.source.getSheetByName("leadData")
   columnToWatch = 1,
   columnToStamp = 7, //change all of these to your needs...1 is column A, 2 is column B, etc
   excluded = ["General Info", "Campaigns", "Automations"]; //add names of sheets/tabs to this list. The script will not work on these sheets.
   if (e.range.columnStart !== columnToWatch ||  !e.value || excluded.indexOf(sheet.getName()) > -1) return;
   sheet.getRange(e.range.rowStart, columnToStamp)
       .setValue(new Date()).setNumberFormat("MM/dd HH:mm");  
}

有人知道我该怎么解决吗?

1 个答案:

答案 0 :(得分:0)

答案:

sourcerange字段不是onChange触发器的事件对象的一部分。您必须直接指定所需的工作表和行。

更多信息:

根据event objects上的文档,Google表格onChange()触发器是可安装的触发器,并且在事件对象中没有sourcerange字段,它通过了。

代码修改:

您需要直接指定工作表。更改以下行

var sheet = e.source.getSheetByName("leadData");

收件人:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("leadData");

并更改

sheet.getRange(e.range.rowStart, columnToStamp)
     .setValue(new Date()).setNumberFormat("MM/dd HH:mm"); 

sheet.getRange(sheet.getDataRange().getNumRows(), columnToStamp)
     .setValue(new Date()).setNumberFormat("MM/dd HH:mm");

我希望这对您有帮助!

参考文献: