Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 清除上一个单元格时是否删除日期戳?_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 清除上一个单元格时是否删除日期戳?

Google apps script 清除上一个单元格时是否删除日期戳?,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我有一个脚本,当前用于在更改项目的低库存时添加日期戳。我希望它在清除库存单元时删除日期戳(如果项目缺货) 目前,即使我删除了日期戳和库存,它也会自动将日期戳放回 基本上,如果前一个单元格中有信息,我只需要一个日期戳&我希望在每次更改前一个单元格中的信息时更新日期 我对脚本非常陌生。可能吗?以下是我在网上找到的脚本: 函数onEdit(){ var s=SpreadsheetApp.getActiveSheet(); 如果(s.getName()=“Data”){//检查我们的工作表是否正确 va

我有一个脚本,当前用于在更改项目的低库存时添加日期戳。我希望它在清除库存单元时删除日期戳(如果项目缺货)

目前,即使我删除了日期戳和库存,它也会自动将日期戳放回

基本上,如果前一个单元格中有信息,我只需要一个日期戳&我希望在每次更改前一个单元格中的信息时更新日期

我对脚本非常陌生。可能吗?以下是我在网上找到的脚本:

函数onEdit(){
var s=SpreadsheetApp.getActiveSheet();
如果(s.getName()=“Data”){//检查我们的工作表是否正确
var r=s.getActiveCell();
如果(r.getColumn()==4){//检查该列
var nextCell=r.offset(0,1);
setValue(新日期());
}
}
}

您希望根据当前单元格是否包含信息采取一些操作。您可以使用
.getActiveCell().getValue()
获取单元格中的当前值,并将其与
if-else
一起使用,以有条件地执行某些操作。在下面的示例中,如果值为truthy,则设置时间戳;如果值为falsy,则清除时间戳单元格

函数onEdit(){
var s=SpreadsheetApp.getActiveSheet();
if(s.getName()!=“数据”)返回;//如果不在“数据”中则退出
var r=s.getActiveCell();
if(r.getColumn()!==4)返回;//如果不编辑列D,则退出
var nextCell=r.offset(0,1);
//根据当前单元格值制作戳记或移除戳记
if(r.getValue())
nextCell.setValue(新日期())
else nextCell.clear();
}
试试这个:

function onEdit(e) {
  const sh=e.range.getSheet();
  if(sh.getName()=="Data" && e.range.columnStart==4) { 
    const ts=Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"E MMM dd, yyyy HH:mm:ss");
    if(e.value) {
      e.range.offset(0,1).setValue(ts);//if D is not blank
    }else{
      e.range.offset(0,1).setValue('');//if D is blank
    } 
  }
}