使用Google App脚本在电子表格中滚动到今天的日期

时间:2020-07-16 14:30:39

标签: javascript google-apps-script google-sheets

我的Google电子表格包含以下列:

  • A:日期
    1. 2020年7月16日
    2. 2020年7月17日
    3. 2020年7月18日
  • B,C,D:其他信息

我需要一个脚本,当您打开文档时,它将自动在表格中滚动到今天的日期。

2 个答案:

答案 0 :(得分:2)

转到今天:

function gotoTodaysDate() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheets()[0];//most left sheet
  const shsr=2;//data start row
  const shsc=1;//date column
  const vs=sh.getRange(shsr,shsc,sh.getLastRow()-shsr+1,1).getValues();
  const dates=vs.map(function(r){return r[0];});//flattened
  const td=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd.MM.yyyy");//current date string
  const idx=dates.indexOf(td);
  sh.getRange(idx+shsr,1).activate();
}

可安装的onOpen触发器:

function createOnOpenTrigger() {
  const ss=SpreadsheetApp.getActive();
  if(!isTrigger('gotoTodaysDate')) {
    ScriptApp.newTrigger('gotoTodaysDate').forSpreadsheet(ss.getId()).onOpen().create();
  }
}

助手功能: 避免为给定功能创建多个触发器

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for (let i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

答案 1 :(得分:0)

您可能不需要脚本执行该操作。

如果您的日期是相反的顺序(即最旧的从上到下,最新的在底部),而您只是想在底部找到最新的日期,则可以单击单元格A1并按Ctrl键以及键盘上的向下箭头键(即Ctrl-▼),您将被带到那里。