Переключение случаев в скрипте листов Google не позволяет распознавать определенные случаи при вводе в ячейку, но работает при копировании + вставке - PullRequest
1 голос
/ 31 марта 2020

Это очень простой сценарий, и я отметил случаи, которые терпят неудачу. В большинстве случаев я проверял «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;
}```

1 Ответ

1 голос
/ 31 марта 2020

Это работает, если вы создаете и устанавливаете триггер 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;
}
...