日期更改时重置单元格

时间:2020-01-05 16:22:10

标签: google-sheets

我是一家小型企业,因此决定使用Google表格来管理我的业务,​​因为它是一种非常灵活的解决方案,并且具有成本效益。我在带有自动化和工作流程的工作表中构建了小型CRM,以使用应用程序脚本简化流程。

我在日期栏“下次联系”中给了我联系客户的日期。我想创建另一列“最后联系日期”,并写一个公式,将“下次联系”更改为新的联系日期时,将今天的日期注册到“最后联系日期”。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么仅当编辑后的值是有效的date时,您才想在last date contacted中的相应行进行编辑时将今天的日期写在next contact中。 / p>

如果是这种情况,那么您可以使用onEdit trigger在列last date contacted每次被编辑且值是一个日期时在next contact中写今天的日期。可能是以下几行中的内容:

function onEdit(e) {
  var range = e.range;
  var sheet = range.getSheet();
  var colIndex = range.getColumn();
  var rowIndex = range.getRow();
  var value = range.getValue();
  if (sheet.getName() == "Sheet1" && rowIndex > 1 && colIndex == 2 && new Date(value) != "Invalid Date") {
    sheet.getRange(rowIndex, 3).setValue(new Date());
  }
}
  • 首先,该函数使用event object来获取已编辑的范围。
  • 然后,它检查(1)修改后的工作表是否正确(在此示例中,称为Sheet1,请相应地进行更改),(2)修改后的行不是标题,(3)编辑的列是next contact,(4)编辑的值是有效日期。
  • 如果满足所有这些条件,则将今天的日期写在last date contacted中。

请注意,在此示例中:

  • next contact在B列中。
  • last date contacted在C列中。
  • 工作表称为Sheet1

请根据您的情况更改所有这些内容。

参考:

https://developers.google.com/apps-script/reference/spreadsheet/range#setValue(Object) https://developers.google.com/apps-script/reference/spreadsheet/range#getvalue

我希望这会有所帮助。