0

感谢您的精彩帖子!

我正在寻找一个代码,它会导致在 Google 表格中打开表格后自动跳转到当前日期(通过共享链接)。如果我已登录,您的代码(见下文)效果很好。当我创建共享链接(有或没有编辑权限)时,代码不起作用。我尝试了使用不同浏览器(Chrome、Edge、Firefox)的链接......可能是什么问题?

    function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var data = sh.getDataRange().getValues();
  var today = new Date().setHours(0,0,0,0);
  for(var n=0;n<data[0].length;n++){
    var date = new Date(data[0][n]).setHours(0,0,0,0);
    if(date==today){break};
  }
  n++;
  sh.getRange(1,n).activate();
}

亲切的问候

这里是您的代码的链接: 如何根据 Google Docs 电子表格中的当前日期为行设置背景颜色?

4

2 回答 2

1

onOpen(e)函数是一个简单的触发器,仅当使用键盘的用户登录到他们的 Google 帐户并具有对电子表格的编辑权限时才会运行。

简单的触发器onOpen(e)onEdit(e)并且以只读模式打开文件时不会运行onSelectionChange(e)。其他类型的脚本也是如此。换句话说,如果您以“可以查看”或“可以评论”的身份共享文件,则没有脚本或附加组件可用。

要使其正常工作,您必须将电子表格文件共享为“可以编辑”。请注意,您仍然可以通过Data > Protected sheet and range保护电子表格。

有关支持同一电子表格文件中的多个工作表的替代方法,请参阅jumpToToday_脚本。

于 2021-04-26T07:24:53.143 回答
0

不幸的是,这对你不起作用。默认情况下,所有未签名的用户(以及未授权脚本的已登录用户)都受到电子表格中可能包含的“有害”脚本的保护。默认情况下,所有脚本都被视为“有害”,包括您的 onOpen 脚本。

于 2021-04-25T22:19:31.113 回答