获取发生特定日期值的行

时间:2018-08-09 13:42:01

标签: google-sheets spreadsheet

我想保留昨天的日期作为最后一行。

我的数据如下:

enter image description here

我尝试了以下方法来保存数据,效果很好。

function moveValuesOnly() {
  var ss = SpreadsheetApp.getActive().getSheetByName('Store values');
  Logger.log(ss.getName());

  // get yesterday's date
  var now = new Date();
  var yesterday = new Date();
  yesterday.setDate(now.getDate()-1);
  yesterday = Utilities.formatDate(yesterday, "GMT+1", 'yyyy-MM-dd');

  Logger.log("yesterday: " + yesterday);


  var source = ss.getRange('4:4');
  source.copyTo(ss.getRange('4:4'), {contentsOnly: true});

  source.setFontWeight("bold");
}

在示例电子表格下方找到:

Sample Spreadsheet

如您所见,我的脚本中的日期格式正确,就像Date列中一样。我还可以正确地“ 持久”数据。

我的问题是我不知道如何获取昨天的日期所在的范围,以便我可以将其移交给我的脚本以保留它。

任何建议如何获取与昨天的日期匹配的行。

1 个答案:

答案 0 :(得分:1)

不能完全确定“ persist”是什么意思,但是下面的函数返回第一行的行号,其中包含昨天的日期:

var yesterdayRow = getYesterdayRow(yesterday,ss.getRange(A:A))

昨天定义后,您可以在代码中这样调用它:

getdisplayValues()

请注意,此功能可以快速解决您当前的需求,但它使用getValues(),这是一种快速欺骗,无需处理日期。您可能应该修改此功能,以便它可以与其他日期格式一起使用。 (使用yesterday,从for loop获取日期,时间和月份,然后从{{1}}中的每个值获取相同的日期,时间和月份,并确保考虑任何时区偏移量。)