Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 - Fatal编程技术网

Google apps script 检查列是否包含值

Google apps script 检查列是否包含值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我应该向if语句添加什么来检查适用行中的列5是否包含值,并防止setValue()覆盖旧值 function onEdit(e) { var sheet = e.source.getActiveSheet(); var i = ['Sheet1', 'Sheet2'].indexOf(sheet.getName()); if (e.range.getValue() != '' && i > -1 && e.range.columnStart =

我应该向if语句添加什么来检查适用行中的列
5
是否包含值,并防止setValue()覆盖旧值

function onEdit(e) {

  var sheet = e.source.getActiveSheet();
  var i = ['Sheet1', 'Sheet2'].indexOf(sheet.getName());
  if (e.range.getValue() != '' && i > -1 && e.range.columnStart === 1) {
    e.range.offset(0,4).setValue(Utilities.formatDate(new Date(), "GMT-8", "MM/dd/yyyy"));
  }
}

说明:

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var row = e.range.getRow();
  var i = ['Sheet1', 'Sheet2'].indexOf(sheet.getName());
  if (e.range.getValue() != '' && i > -1 && e.range.columnStart === 1 && sheet.getRange(row,5).getValue()=='') {
    e.range.offset(0,4).setValue(Utilities.formatDate(new Date(), "GMT-8", "MM/dd/yyyy"));
  }
}
if
语句中为列
5
添加一个条件,使其在
处为空,以便填充:

sheet.getRange(第5行).getValue()=''

解决方案:

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var row = e.range.getRow();
  var i = ['Sheet1', 'Sheet2'].indexOf(sheet.getName());
  if (e.range.getValue() != '' && i > -1 && e.range.columnStart === 1 && sheet.getRange(row,5).getValue()=='') {
    e.range.offset(0,4).setValue(Utilities.formatDate(new Date(), "GMT-8", "MM/dd/yyyy"));
  }
}
或:

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var row = e.range.getRow();
  var i = ['Sheet1', 'Sheet2'].indexOf(sheet.getName());
  if (e.range.getValue() != '' && i > -1 && e.range.columnStart === 1 && sheet.getRange(row,5).getValue()=='') {
    e.range.offset(0,4).setValue(Utilities.formatDate(new Date(), "GMT-8", "MM/dd/yyyy"));
  }
}
我对代码进行了一些格式化,使其更加紧凑:

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const row = e.range.getRow();
  const col = e.range.getColumn();
  const sheets = ['Sheet1', 'Sheet2'];
  if (e.range.getValue() != '' && sheets.includes(sheet.getName()) 
      && col === 1 && sheet.getRange(row,5).getValue()==''){
      e.range.offset(0,4).setValue(Utilities.formatDate(new Date(), "GMT-8", "MM/dd/yyyy"));
  }
}