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))