我正在尝试在Google表格中创建一个函数,该函数将跳到包含当前日期的单元格。
如果日期在一列中并且格式设置为mm / dd / yyyy,则以下功能有效。
function gotoToday() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("G:G");
var values = range.getValues();
var day = 24*3600*1000;
var today = parseInt((new Date().setHours(0,0,0,0))/day);
var ssdate;
for (var i=0; i<values.length; i++) {
try {
ssdate = values[i][0].getTime()/day;
}
catch(e) {
}
if (ssdate && Math.floor(ssdate) == today) {
sheet.setActiveRange(range.offset(i,0,1,1));
break;
} }
}
但是,在我的工作表中包含日期的单元格填充为“ = A1 + 1”等,并按如下方式分布在各列中:
如何修改上面的功能,以便它可以找到并匹配今天的日期?
谢谢
更新:我设法使该函数跨多个列工作。现在我只需要知道如何读取单元格中填充为= A1 + 1,A2 + 1等的日期
答案 0 :(得分:1)
两件事:
var range = sheet.getRange("G:G");
var range = sheet.getDataRange();
ssdate = values[i][0].getTime()/day;
)是不够的,但是您需要两个嵌套的for
遍历行和列:ssdate = values[i][j].getTime()/day;
< / li>
getTime()
。Format ->Number -> Date
参考: