0

我需要编写多个具有多个条件的 if 语句,其中一些条件只是在查找包含文本的单元格。下面是我正在使用的脚本示例。在此示例中,我需要 value [2] 成为单元格包含文本的正确语法。我尝试了几种方法,包括 <>"" 不起作用。有没有办法表达单元格包含文本而不在代码中添加额外的行?感谢您的任何帮助。

function onEdit2(e){

var ss = e.source;

var sheet = ss.getActiveSheet();

var row = e.range.getRow();

var col = e.range.getColumn();

  var validSheets = ["3","4","5","6"];

var value = [];

if(row > 1 && col <=7 && validSheets.includes(sheet.getName())){

value = sheet.getRange(row,2,2,5).getDisplayValues().flat();


  if(value[0] == "Outgoing" && value [1] == "FASTWAY" && value [2] === <>"" && value [3] == "TARGET"){

sheet.getRange(row,10).setValue("USE HEAT TREATED PALLET");

}}
4

1 回答 1

0

您可以通过将其与空文本字符串进行比较来测试文本字符串是否具有非零长度,如下所示:

values[2] !== ''

...或者简单地通过引用它的length属性,像这样:

function onEdit2(e) {
  const sheet = e.range.getSheet();
  if (e.range.rowStart <= 1
    || e.range.columnStart > 7
    || !sheet.getName().match(/^(3|4|5|6)$/i)) {
    return;
  }
  const values = sheet.getRange(e.range.rowStart, 2, 2, 5).getDisplayValues().flat();
  if (values[0] === 'Outgoing'
    && values[1] === 'FASTWAY'
    && values[2].length
    && values[3] === 'TARGET') {
    sheet.getRange(e.range.rowStart, 10).setValue('USE HEAT TREATED PALLET');
  }
}
于 2021-06-14T05:49:44.330 回答