更改日期时重置单元格



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

我有一个日期列"下一个联系人",它为我提供了联系客户的日期。我想创建另一个列,上面写着"上次联系的日期",并编写一个公式,当"下一个联系人"更改为新的联系日期时,将今天的日期注册到"最后联系的日期"中。

我该怎么做?

如果我理解正确,每次编辑next contact中的相应行时,您才想在last date contacted中写下今天的日期,前提是编辑的值是有效的日期。

如果是这种情况,则可以使用 onEdit 触发器在每次编辑列next contact并且编辑的值为日期时last date contacted写入今天的日期。它可能是以下几行的内容:

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());
}
}
  • 首先,该函数使用事件对象获取已编辑的范围。
  • 然后,它检查 (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

我希望这有什么帮助。