2015-12-18 1 views
1

Я в тупике с тем, что, вероятно, является простой проблемой.Скрипт Google Sheet условно задал значение пустых ячеек на сегодняшнюю дату, но оставить существующие данные одинаковыми

У меня есть столбец данных, J, который имеет дату в некоторых ячейках, но не все. Если ячейка пуста, мне нужно написать сегодняшнюю дату в этой ячейке.

Вот то, что я до сих пор:

var event=[]; 
var date= new Date(); 

for (event=1; event< destSheet.length; event ++){ 
    if (destSheet[event][10]<1){ 
     [event][10]=date; 
    } 
    } 

Никакие ошибки не возвращаются, он просто не написать в дату (я буду беспокоиться о формате позже). Что я сделал не так?

+0

'[event] [10] = date;' Это ошибка. 11-й элемент '[some number]' является 'undefined'. В таком маленьком фрагменте кода слишком много. –

+0

Сначала я попытался использовать == undefined, и он тоже не работал .... –

+0

Что вы пытаетесь сделать с этой строкой '[event] [10] = date' внутри 'if'? А также почему вы повторно используете переменную 'event'? В JS 'event' зарезервировано, и я не думаю, что вы можете использовать его как переменную. (См., Как он синим в блоке кода выше?) –

ответ

0

Возможно, вам потребуется что-то вроде следующего кода. Код создает 2-мерный массив для перезаписи существующих данных с теми же данными и помещает новую дату в ячейки, которые пусты.

function xyz() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sourceSheet = ss.getSheetByName("Sheet1"); 

    //getRange(start row, start column, numRows, number of Columns) 
    var rangeData = sourceSheet.getRange(2,1, sourceSheet.getLastRow()-1, 1); 

    var dataFromSheet = rangeData.getValues(); 
    var date= new Date(); 

    var i=0, 
     thisCellValue, 
     innnerArray = [], 
     outerArray = []; 

    for (i=0; i< dataFromSheet.length; i+=1){ 
    thisCellValue = dataFromSheet[i]; 

    if (thisCellValue === ""){ 
     innnerArray.push(date); 
     outerArray.push(innnerArray); 
    } else { 
     innnerArray.push(thisCellValue); //To overwrite original data with the same data 
     outerArray.push(innnerArray); 
    }; 
    }; 

    sourceSheet.getRange(2,1, outerArray.length, innerArray[0].length).setValues(outerArray); 
}; 
Смежные вопросы