@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())
}
}
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
...а ну-ка пыль сдуй отсюда...
второй удаляю - работает первый.

назовите переменные по-разному
Ответ написан
@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.
Грубо говоря, объединить код из них. Но при объединении обратите внимание на названия переменных.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы