谷歌脚本,从一张纸到另一张纸的行复制条件和日期

时间:2017-08-01 16:44:37

标签: google-sheets

在我的google脚本中,我尝试复制一些行,其中包含从工作表到另一个工作表的数据条件

我对从表格中获取日期有疑问

我尝试了以下内容:

var date_check = new Date(data[i][4]);

其中[i]是索引,4是日期所在的列。(日志只告诉我相对数字,所以我尝试从该数字创建新日期,但只生成一个NaN变量。

这是所有代码

function copy() {


var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName('ISCRITTI');
  var sheet2 = ss.getSheetByName('2012');
 var todayDate = new Date('1/1/2012');
  var data = sheet1.getRange(2,1, sheet1.getLastRow(), sheet1.getLastColumn()).getValues();

  var dest = [];
  for (var i = 0; i < data.length; i++ ) {
    Logger.log(data[i][4]);// return a number not the date in the sheets
    var date_check = new Date(data[i][4]);
    Logger.log(date_check); // return NaN
     Logger.log(todayDate.getFullYear()); //return 2012.0
    if ( todayDate.getFullYear()===date_check.getFullYear()) { 
     dest.push(data[i]); 
    }
  } // here is the end of the for loop



  if (dest.length > 0 ) { 
    sheet2.getRange(sheet2.getLastRow()+1,1,dest.length,dest[0].length).setValues(dest);
  }
}

我错过了什么?谢谢你的时间

1 个答案:

答案 0 :(得分:0)

它对我有用。我将其修改为在我的环境中工作,我取出了所有日期检查的东西并使用了getDataRange。

function copy() 
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getActiveSheet();
  var data = sheet1.getDataRange().getValues();
  var dest = [];
  for (var i = 0; i < data.length; i++ ) 
  {
     dest.push(data[i]); 
  } 
  sheet1.getRange(sheet1.getLastRow()+1,1,dest.length,dest[0].length).setValues(dest);
}