ReferenceError: «e» не определено |трудности с несколькими скриптами на одном листе - PullRequest
0 голосов
/ 13 февраля 2019

Для своей работы я создал электронную таблицу, в которой отслеживаются даты обслуживания для всех различных задач соответствующего компьютера.

Мои сценарии работали очень хорошо, но я заметил, что он будет работать на всех страницаху меня есть в моем листе.

Так что я искал решение, но я не могу найти другие решения, которые я нашел, чтобы работать для меня.

Сценарий, который я былиспользуя:

function onEdit(e) {
   if (e.range.getColumn() == 6) {
     e.range.offset(0, 3).setValue("")}
  };
  function onEdit2(e) {
   if ([10].indexOf(e.range.columnStart) != -1) {
     e.range.offset(0, 1).setValue(newDate()).setNumberFormat("dd.MM.yyyy | HH:mm")};
}

С этим я был ближе всего к завершению моего квеста (я думаю)

function Autoclear(e){

  var sheet = event.source.getActiveSheet(e);
  if(sheet.getName()=='Onderhoud'){
  var editedCell = sheet.getActiveCell();
           if (e.range.getColumn() == 6) {
         e.range.offset(0, 3).setValue("")}
      }
  };

function Timestamp(e){

  var sheet = event.source.getActiveSheet(e);
  if(sheet.getName()=='Onderhoud'){
  var editedCell = sheet.getActiveCell();

       if ([10].indexOf(e.range.columnStart) != -1) {
         e.range.offset(0, 1).setValue(new Date()).setNumberFormat("dd.MM.yyyy | HH:mm")};
}
}

Это не дает мне ошибку при сохранении, но я получаюсообщение об ошибке при запуске.(ReferenceError: 'e' не определено)

Основная цель - заставить скрипт работать на 1 конкретной странице: "Onderhoud"

Как я могу сделать эту работу, даже если естьчто-то неправильно отформатированное или оставленная информация, я буду более чем рад предоставить.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Попробуйте этот сценарий вместо тех, которые у вас есть

function onEdit(e) {
var sheet = e.source.getActiveSheet();
var ind = [6, 10].indexOf(e.range.columnStart);
if (sheet.getName() == 'Onderhoud' && ind > -1) {
    if (ind === 0) {
        e.range.offset(0, 3).setValue(null)
    } else {
        e.range.offset(0, 1).setValue(new Date()).setNumberFormat("dd.MM.yyyy | HH:mm")
    };
};
}

Как отмечает Амит, отредактируйте назначенные столбцы (вместо запуска сценария из редактора сценариев), чтобы проверить, работает ли сценарий.

0 голосов
/ 13 февраля 2019

Триггер onEdit не должен запускаться вручную.Служба электронных таблиц пропустит объект e, когда триггер будет выполнен с помощью любых изменений в электронной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...