0

我是 JavaScript 和 Google Speardsheet 的新手,我需要一些帮助。我在 google speardsheet 中有一张表格,在 L 列中 - 我有日期。该表按日期排序,从最早到最新。

现在,我需要 2 个函数 - 第一个 - 它将返回表中存在的最后一个(=最新)日期。第二个 - 这将返回最新日期出现在表格中的第一行。

我成功编写了第一个函数(称为:FindLastDate),但第二个函数有问题。请查看我的代码并给出您的建议:

   function TheFirstRowWithThisDate() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var dataRange = sheet.getDataRange().getValues();
    var i = 0;
    var a = 0;
    d = FindLastDate();
    while (a==0) {
    if  (dataRange[d][11]==dataRange[i][11])
    { var a=i
    }
    i=i+1;
    }
    return a 
    }
4

1 回答 1

0

由于许多原因,日期很难处理 - 电子表格单元格的格式、电子表格的时区和脚本都起作用。

因此,鉴于您的要求,我会以艰难的方式解析日期。

function TheFirstRowWithThisDate() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange().getValues();
  var d = FindLastDate(); 
  var lastDate = new Date(d); 
  for( var i = 0 ; i < dataRange.length ; i++){
    var tempDate = new Date(dataRange[i][11]); // Col L
    if(tempDate.getDate() == lastDate.getDate() && 
       tempDate.getMonth() == lastDate.getMonth() && 
       tempDate.getFullYear() == lastDate.getFullYear() ) { 
         return (i+1); // Return the row number which is 1 more than the index 
    }
  }
  return 0;
}
于 2012-08-15T06:01:16.037 回答