Почему скрипт Timestamp onEdit не работает с моим выпадающим меню?

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

Вот что у меня есть:

function onEdit(e) {

  addTimestamp(e);
  
}


function addTimestamp(e){
  //variable
  var startRow = 6;
  var targetColumn = 7;
  
  //get modified row and column
  var row = e.range.getRow();
  var col = e.range.getColumn();
  
  if (col === targetColumn && row >= startRow){
    
    var currentDate = new Date();
    e.sourcegetActiveSheet().getRange(row,12).setValue(currentDate);
  }
  
}

Вот пример тестового листа

Я также хотел бы иметь возможность пропускать 4 вкладки, но применять к остальным. Первоначально я пытался использовать

e.sourcegetActiveSheet().getName() != "*tab I wanna exclude*" &&

Внутри IF, но не знаю, работает ли это, так как я не могу заставить полный скрипт работать должным образом.

Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема

Вы написали свой код, в котором неправильно получаете активный лист. В вашем коде вы помещаете e.sourcegetActiveSheet(), но это должно быть e.source.getActiveSheet().

Решение

Пожалуйста, замените указанную строку кода кодом ниже. Я проверил его на своем конце, и он работает правильно.

e.source.getActiveSheet().getRange(row,13).setValue(currentDate);

После этого вы можете проверить свой код на пропуск вкладок.

Круто, это сработало! Часть пропуска вкладок теперь тоже работает, спасибо!

Marc Golas 19.12.2020 16:18

Звучит здорово! Буду признателен, если вы примете этот ответ, чтобы другие знали, какой из них решил вашу проблему. Удачного кодирования! :)

Jason E. 21.12.2020 14:19

Другие вопросы по теме