在Google Sheets脚本中切换案例时,当键入单元格时无法识别某些案例,但是在复制粘贴时有效

问题描述 投票:0回答:1

这是一个非常简单的脚本,我注意到了失败的情况。我测试最多的情况是在单元格中键入“ ts”时,该值不会被替换,但是当我从脚本中复制并将其粘贴到单元格中时,它会替换该值。我已经多次键入该行代码,以确保引号内没有多余的空间。非常感谢对此有何见解。

  switch (e.value) {
    case 'n':
      e.range.setValue('=Sheet5!B1');
      break;
    case 't':
      e.range.setValue('=Sheet5!B2');
      break;
    case 'i': //fails
      e.range.setValue('=Sheet5!B3');
      break;
    case 'c':
      e.range.setValue('=Sheet5!B4');
      break;
    case 's': //fails
      e.range.setValue('=Sheet5!B5');
      break;
    case 'st':
      e.range.setValue('=Sheet5!B6');
      break;
    case 'si': //fails
      e.range.setValue('=Sheet5!B7');
      break;
    case 'sc':
      e.range.setValue('=Sheet5!B8');
      break;
    case 'ts': //fails
      e.range.setValue('=Sheet5!B6');
      break;
    case 'is': //fails
      e.range.setValue('=Sheet5!B7');
      break;
    case 'cs':
      e.range.setValue('=Sheet5!B8');
      break;
    case 'd': //fails
      e.range.setValue('=Sheet5!B9');
      break;
    default:
      return;
  }
    return;
}```
google-apps-script google-sheets switch-statement
1个回答
0
投票

如果您创建并安装onEdit触发器,则可以使用此方法,因为更改值无法使用简单的触发器。

function onYourEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()!='Sheet10')return;

  switch (e.value) {
    case 'n':
      e.range.setValue('=Sheet11!B1');
      break;
    case 't':
      e.range.setValue('=Sheet11!B2');
      break;
    case 'i': //fails
      e.range.setValue('=Sheet11!B3');
      break;
    case 'c':
      e.range.setValue('=Sheet11!B4');
      break;
    case 's': //fails
      e.range.setValue('=Sheet11!B5');
      break;
    case 'st':
      e.range.setValue('=Sheet11!B6');
      break;
    case 'si': //fails
      e.range.setValue('=Sheet11!B7');
      break;
    case 'sc':
      e.range.setValue('=Sheet11!B8');
      break;
    case 'ts': //fails
      e.range.setValue('=Sheet11!B6');
      break;
    case 'is': //fails
      e.range.setValue('=Sheet11!B7');
      break;
    case 'cs':
      e.range.setValue('=Sheet11!B8');
      break;
    case 'd': //fails
      e.range.setValue('=Sheet11!B9');
      break;
    default:
      return;
  }
  return;
}
© www.soinside.com 2019 - 2024. All rights reserved.