更新:根据之前的答案,我加入了人们的合唱团,要求谷歌重新启用这项工作的能力,他们显然已经遵守了。谢谢!
现在要弄清楚如何实现它,因为我对Google表格中的脚本一无所知。 :)
我有一个电子表格,其中包含许多需要每日输入数据的不同表格。例如,有一张名为US-Sales的表格,每年的每一天都有一行。还有其他几个相同的表格,如英国销售,美租,等等。
我希望无论何时打开其中一张纸,我都会根据当前日期自动跳转到正确的行。
可能?如果是这样,怎么样?
提前非常感谢!
印
答案 0 :(得分:2)
这通常可以通过一个带有onOpen()
功能的简单脚本(在电子表格打开时执行)来实现,并激活所需的单元格(或表格)......
但是,由于新版电子表格(您最有可能使用)的更改,这已不再可能(目前为止),请参阅this issue (3928)并随意加注,以便Google团队充满希望会改变主意,让它再次成为可能; - )
修改:这个简单的代码适用于old version of spreadsheets,它不适用于新版本。
function onOpen() {
SpreadsheetApp.getActive().getSheets()[0].getRange('B6').activate();// an arbitrary cell
// not worth trying more complex cell selection (on date or anything else) while this is blocked by design .
}
有关此更改here及以下内容的详细信息。
2014年10月16日,此问题现已修复,上述代码也适用于新版电子表格。 details of issue here
自动激活对应于一年中某一天的行,您可以使用如下代码:
function onOpen() {
var day = new Date().getDOY();// this uses a custom date method that returns the day of the year and is defined below
SpreadsheetApp.getActive().getSheets()[0].getRange(day,1).activate();// in cloumn 1 for example. Add an offset if necessary (if headers...)
}
Date.prototype.getDOY = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
}