Google Script: добавление результатов в новую соседнюю ячейку - PullRequest
0 голосов
/ 22 января 2019

В моей электронной таблице Google я хотел бы добавить 7 дней к датам в столбцах F. Результаты должны отображаться в столбце G. Как можно распечатать результаты моей функции в соседней ячейке в столбце G?Извините, если мой вопрос звучит просто, я новичок.Вот мой код:

function UpdateDates() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var row = SpreadsheetApp.getActiveRange().getRow
    //Get the dates from the cell and convert them into Milliseconds since 1970/01/01
    var First = new Date(ss.getRange('F4').getValue()).getTime();
    var Second = new Date(ss.getRange('F5').getValue()).getTime()
    var Third = new Date(ss.getRange('F6').getValue()).getTime();
    var dayInMs = 24*60*60*1000    //one day in Milliseconds
    //add sevendays to each date in milliseconds

    First = First + (7*dayInMs)
    Second += (7*dayInMs)
    Third += (7*dayInMs)

   //Convert Milliseconds to date use new Date(time in ms) and set Values of the cell
    ss.getRange('F4').setValue(new Date(First));
    ss.getRange('F5').setValue(new Date(Second));
    ss.getRange('F6').setValue(new Date(Third));

}

прямо сейчас, когда я запускаю код, он заменяет то, что находится в столбце F

1 Ответ

0 голосов
/ 22 января 2019

Попробуйте это:

function UpdateDates() {
    var ss=SpreadsheetApp.getActive();
    var sh=ss.getActiveSheet();
    var rg=sh.getRange(4,6,3,2);
    var vA=rg.getValues();
    var day=1000 * 60 * 60 * 24;
    for(var i=0;i<vA.length;i++){
      vA[i][1]=new Date(vA[i][0].getFullYear(),vA[i][0].getMonth(),vA[i][0].getDate()+ 7);
      //vA[i][1]=new Date(new Date(vA[i][0]).valueOf()+ (7 * day));
    }
    sh.insertColumnAfter(6);
    rg.setValues(vA);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...