【问题标题】:Apps Script - 2 Conditions in if Statement. If Cell changes & if Cell contains certain textApps 脚本 - if 语句中的 2 个条件。如果单元格更改并且单元格是否包含某些文本
【发布时间】:2022-11-04 17:19:46
【问题描述】:

我在下面有这个功能

当单元格 A4 已更改且不包含文本“SS”时,如何在单元格 D4 中显示“请选择”。

此外,当单元格 A4 已更改并且包含文本“SS”时,如何在单元格 D4 中显示 B4 的值,然后用红色字体以黄色突出显示单元格。


function onEdit(e) {

  
  var Grade = (e.range.getColumn() === 1 ) && ( e.range.getRow() === 4); // cell A4
  var CustomMaterial= (e.range.getColumn() === 2 ) && ( e.range.getRow() === 4); // cell B4
  var Size = (e.range.getColumn() === 3 ) && ( e.range.getRow() === 4); // cell C4
  var Material= (e.range.getColumn() === 4 ) && ( e.range.getRow() === 4); // cell D4
  
  
  try {
    let sheet = e.range.getSheet()
    if( sheet.getName() === "mycalc" ) {
      
      if(Grade && Grade! "*SS*) { 
      sheet.getRange("Size").setValue("Please Select");
      sheet.getRange("Material").setValue("Please Select");
         }

}
      if(Grade && Grade=="*SS*) { 
      sheet.getRange("Size").setValue("Please Select");
      sheet.getRange("Material").setValue(CustomMaterial);
         }

        }
     catch(err) {
    SpreadsheetApp.getActiveSpreadsheet().toast("onEdit() "+err);
  }
}

【问题讨论】:

  • 你在这里有一个语法错误:if(Grade && Grade! "*SS*) {

标签: google-apps-script google-sheets


【解决方案1】:

使用String.match(),像这样:

function onEdit(e) {
  try {
    let sheet;
    if (e.range.rowStart !== 4
      || e.range.columnStart > 4
      || (sheet = e.range.getSheet()).getName() !== 'mycalc') {
      return;
    }
    const d4 = sheet.getRange('D4');
    switch (e.range.columnStart) {
      case 1:
        if (e.value.match(/SS/i)) {
          const b4Value = sheet.getRange('B4').getValue();
          d4.setValue(b4Value).setBackground('yellow').setFontColor('red');
        } else {
          d4.setValue('please select').setBackground(null).setFontColor(null);
        }
        break;
      default:
        ;
    }
  } catch (err) {
    SpreadsheetApp.getActive().toast(`onEdit(e) error: ${err.message}`);
  }
}

switch() 控制流语句对于这个简单的例子来说有点多。它预计您需要更多逻辑,具体取决于编辑的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多