0

Я пытаюсь реализовать условное выражение в своей электронной таблице, в основном контрольный лист с тремя условными ячейками с «Да» или «Нет» в них. Все, что я хочу достичь (используя onEdit), - это все три ячейки, содержащие «Да», введите следующий столбец с датой последнего Да. Мне удалось создать другие скрипты, которые отлично работают, но у меня все в порядке.Google Spreadsheet условно на три ячейки

Благодаря

+0

Что у вас есть? Вы не указали какую-либо информацию о том, что у вас было с этим вопросом. – Mogsdad

ответ

1

Поскольку клетки могут быть отредактированы по отдельности, ваш onEdit всегда нужно проверить все значения ваших условных клеток, и записать метку времени только тогда, когда все „Да“.

function onEdit(event) { 
    var conditionalCells = [ "B1", "B2", "B3" ]; // Array of monitored conditionals 
    var inList = false;       // assume edit was outside of the conditionals 
    var allYes = true;       // and that all values are "Yes". 
    var sheet = event.source; // Sheet that was edited 
    var cell = event.range.getA1Notation(); // get range description 
    // Loop through all conditionals checking their contents. 
    // Verify that the edit that triggered onEdit() was in one 
    // of our conditional cells, setting inList true if it was. 
    for (var i = 0; i < conditionalCells.length && allYes; i++) { 
    if (cell == conditionalCells[i]) inList = true; 
    allYes = (sheet.getRange(conditionalCells[i]).getValue() == "Yes"); 
    }; 
    // If this was our final Yes, record the date. 
    // By validating inList, we ensure we record only the first time 
    // all conditionals are "Yes". 
    if (inList && allYes) sheet.getRange("C1").setValue(new Date()); 
} 
+0

Извинения за то, что я не предоставил никакого сценария, все, что я пробовал, потерпело неудачу, и не было нигде рядом с тем, что вы дали выше, большое спасибо. Как раз на это, он вызывает ошибку в этой строке? var sheet = event.source; // Лист, который был отредактирован Сообщение об ошибке: TypeError: Невозможно прочитать свойство "source" из undefined. (строка 5, файл «Код») - Извините, я не могу отформатировать это правильно как код! – Hyperjase

+0

Параметр «event» предоставляется, когда функция запускается путем редактирования; если вы используете его в отладчике, у вас нет «события». См. [Этот вопрос] (http://stackoverflow.com/questions/16089041/how-can-i-test-a-trigger-function-in-gas). – Mogsdad

+0

Ах да, спасибо, я тоже что-то заметил. Вы назначаете B1, B2 и B3 в массиве, я нашел небольшую проблему, столбцы, которые мне нужно проверить, это D, E и F, а затем поместить дату в столбец G, однако номер строки указан - как бы я заставить работать все строки? Большое спасибо. – Hyperjase

Смежные вопросы