Googlescript, чтобы добавить одну неделю - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть скрипт для добавления недели в C (oldDateRange) и размещения результата в D (NextWeek), но он не работает хорошо.

Мне также нужно добавить неделю к D и поместить результат в E. Если я изменю C, столбцы D и E добавят неделю. Если я поменяю D, E добавлю неделю.

function addWeek() {

var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1");

var oldDate  = sheet.getRange("oldDateRange").getValue();

var oldDateValue = oldDate.getMilliseconds()

var nextWeekValue = oldDateValue + 1000*60*60*24*7
var nextWeekDate = new Date(nextWeekValue)

var cell = sheet.getRange("NextWeek"); 
cell.setValue(nextWeekDate);

}  

1 Ответ

0 голосов
/ 07 ноября 2018

Ответ заключается в добавлении 7 к старому свойству Date и установке с ним нового Date. Ответ можно найти здесь. Добавить дни в JavaScript Дата .

function addWeek() 
{

  var ss = SpreadsheetApp.getActive();
  // I just added the id for accuracy

  var sheet = ss.getSheetByName("Sheet1");

  var lrow = sheet.getLastRow();
  // get the last row in the spreadsheet so when know when to stop for our 
  //loop

  var oldDates = sheet.getRange(2, 4, lrow, 1).getDisplayValues();
  //the displayvalue returns whatever is in the cell

  var newDates = sheet.getRange(2, 5, lrow, 1);
  Logger.log(newDates.getDisplayValues().length);
  // I get the range instead of the value because I will set values here.  

  for(var i = 1; i < lrow;i++)
  {
    var date = new Date(oldDates[i][0]); 
    // gets the current date cell and creates a date from it
    var newDate = date;
    // creates a new date
    newDate.setDate(date.getDate() + 7);
    //sets the date adding a week
    newDates.getCell(i, 1).setValue(newDate);
   //sets the cell to the right with the date.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...