Задать вопрос
@Marina0123456789

Почему не работает второй похожий скрипт на листе гугл-таблицы, но с разными условиями?

Вставила скрипт на заполнение даты по условию изменения данных в соседнем столбце.
Нужно сделать точно такой же, тоже вставлять дату в другую ячейку и при изменении данных уже в другом столбце.
Работает только один скрипт из двух, второй удаляю - работает первый. Почему не работают одновременно?

Скрипт 1:
function onEdit(e) {
if (e.range.columnStart == 12 && !!~["Выполнено", "выполнено"].indexOf(e.value))
    e.range.offset(0, 1).setValue(new Date())
}


Скрипт 2:
function onEdit(e)
{
var range = e.range
if(range.getColumn()==3 && e.value!=null){
range.offset(0,-2).setValue(new Date())
}
}
  • Вопрос задан
  • 847 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
второй удаляю - работает первый.

назовите переменные по-разному
Ответ написан
Комментировать
@Marina0123456789 Автор вопроса
Начальные скрипты были такие:

Скрипт 1:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();

if ( idCol == 3 && sheet.getName() =='Лист1' ) {
var Value = e.range.offset(0, 0).getValues();
if ( Value != null )
var vartoday = getDate();
sheet.getRange(idRow, 1).setValue( vartoday );

}

}

// Returns YYYYMMDD-formatted date.
function getDate() {
var today = new Date();
today.setDate(today.getDate());
return Utilities.formatDate(today, 'PST', 'dd.MM.yyyy');
//return Utilities.formatDate(today, 'GMT+03:00', 'dd.MM.yyyy');
}

Скрипт 2
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();

if ( idCol == 12 && sheet.getName() =='Лист1' ) {
var Value = e.range.offset(0, 0).getValues();
if ( Value == "Выполнено" )
var vartoday = getDate();
sheet.getRange(idRow, 13).setValue( vartoday );

}

}

// Returns YYYYMMDD-formatted date.
function getDate() {
var today = new Date();
today.setDate(today.getDate());
return Utilities.formatDate(today, 'PST', 'dd.MM.yyyy');
//return Utilities.formatDate(today, 'GMT+03:00', 'dd.MM.yyyy');
}
Ответ написан
Комментировать
@mityayka1
Потому что две функции называются одинаково. onEdit это специальная функция гугла, которая запускается при изменении таблицы человеком. Вам нужно прописать все необходимые действия в теле одной функции onEdit.
Грубо говоря, объединить код из них. Но при объединении обратите внимание на названия переменных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы