не запускается скрипт

1777
26 ноября 2016, 09:15

не получается запустить скрипт, нужен для автоматической вставки даты, при изменение данных в ячейке:

function onEdit(e) {
    var sheetName = e.source.getActiveSheet().getSheetName();
    var sheet = e.source.getActiveSheet();
    var idCol = e.range.getColumn();
    var idRow = e.range.getRow();
    var Value = e.range.offset(0, +1).getValues();
    var Val   = e.range.getValues();
  if ( idCol == 16 && sheetName == 'P2P_Pipeline') 
  {
    sheet.getRange(idRow, idCol == 1).setValue(Utilities.formatDate(new Date(),"GMT+3", "MM/dd/yyyy").toString());
    }
};

При этом возникает ошибка:

typeerror не удается прочитать свойство source объекта undefined, строка 2

Answer 1
  • У вас просто опечатка idCol == 1
  • var sheetName = e.source.getActiveSheet().getSheetName(); - не совсем хорошая идея
  • Не навязываю, но лучше использовать строгое сравнение ===

    function onEdit(e) {
        try {
            var sheet = e.range.getSheet();
            var sheetName = e.range.getSheet().getName();
            var idCol = e.range.getColumn();
            var idRow = e.range.getRow();
            var Value = e.range.offset(0, +1).getValues();
            var Val = e.range.getValues();
            if (idCol === 1 && sheetName === 'P2P_Pipeline') {
                sheet.getRange(idRow, idCol = 1).setValue(Utilities.formatDate(new Date(), "GMT+3", "MM/dd/yyyy").toString());
            }
        } catch (err) {
            SpreadsheetApp.getActiveSpreadsheet().toast(err);
        }
    };
    

Вы уверены, что использование конструкций типа +1 или (..., idCol = 1) удачное решение?

Answer 2

Спасибо всем за помощь.

Нашел подходящий скрипт для своего файла:

function onEdit() {
    var s = SpreadsheetApp.getActiveSheet();
    if (s.getName() == "P2P") { //checks that we're on the correct sheet
        var r = s.getActiveCell();
        if (r.getColumn() == 17) { //checks the column
            var nextCell = r.offset(0, 5);
            if (nextCell.getValue() === '') //is empty?
                var time = new Date();
            nextCell.setValue(new Date());
        }
    }
}
READ ALSO
Как создать выпадающий список select, который будет менять изображение?

Как создать выпадающий список select, который будет менять изображение?

Имеется html и css кодПомогите написать JS для правильной работы скрипта, чтобы при выборе определенной опции менялась картинка

733
Цвет div блока JS

Цвет div блока JS

Цвет при нажатии CTRL+click меняется на #СССКак сделать чтобы при нажатии CTRL+click цвет менялся на #CCC если нажмешь еще раз CTRL+click то с #CCC на #DDD и так...

717
Проверка radio button JavaScript

Проверка radio button JavaScript

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

1056
не работает функция moveBy() Javascript

не работает функция moveBy() Javascript

Вопрос: при запуске функции winMove() окно не двигается по мониторуПочему?

835