Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 获取发生特定日期值的行_Google Sheets_Spreadsheet - Fatal编程技术网

Google sheets 获取发生特定日期值的行

Google sheets 获取发生特定日期值的行,google-sheets,spreadsheet,Google Sheets,Spreadsheet,我想把最后一行和昨天的日期放在一起 我的数据如下所示: 我尝试了以下方法来保存数据,效果很好 function moveValuesOnly() { var ss = SpreadsheetApp.getActive().getSheetByName('Store values'); Logger.log(ss.getName()); // get yesterday's date var now = new Date(); var yesterday = new Dat

我想把最后一行和昨天的日期放在一起

我的数据如下所示:

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

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");
}
下面是一个电子表格示例:

正如您所看到的,我在脚本中得到了正确的昨天日期格式,如我的
date
列中所示。我还可以正确地“持久化”数据

我的问题是,我不知道如何获取昨天发生的日期的范围,以便我可以在脚本中将其提交以保持它


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

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

function getYesterdayRow(yesterdayDate,columnRange) {
    var displayValues = columnRange.getDisplayValues();
    for (var i = 0; i < displayValues.length; i++) {
        var displayValue = displayValues[i][0];
        if (displayValue === yesterdayDate) return i + 1;
    }
    return 0;
}
请注意,此函数可以快速修复您当前的需要,但它使用了
getdisplayValues()
,这是一种不必处理日期的快速欺骗。您可能应该修改此函数,以便它可以与其他日期格式一起使用。(使用
getValues()
,从
昨天
获取日期、时间和月份,然后从
for循环
中的每个值获取相同的日期、时间和月份,并确保考虑到任何时区偏移。)

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