我有一个谷歌电子表格,有多张表格。我希望将光标设置为特定单元格
onOpen
所有标签页。第一行的每个单元格表示一年中从开始到结束的一周,表示全年。我已经编写了一些代码,以便在打开时在第5行预选特定的列(一年中的一周)。
目前,只有最后一张工作表选择了我想要的单元格。这是因为
setActiveCell
一次只能用一个手机。我也试过
setActiveRange
和
setActiveSelection
无济于事。
我发现了一个多年前的问题
Here
,但解决方案对我不起作用。也许从那以后有些事情已经改变了。
这是我的代码:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}
var now = new Date();
var weekNum = now.getWeek();
var sheets = ss.getSheets();
for(var i = 0; i < sheets.length; i++) {
var newRange = sheets[i].getRange(5,weekNum + 1);
sheets[i].setActiveCell(newRange);
}
}
在我上面提供的链接中,我尝试了所有给定解决方案的差异,但我的代码从来都不是完全相同的,因为我没有寻找与op完全相同的东西。例如,使用jacob jan tuistra的最新代码解决方案,我得出:
function setCursor() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}
var now = new Date();
var weekNum = now.getWeek();
ss.getSheets().forEach(function (sheet, weekNum) {
Logger.log(weekNum);
sheet.setActiveRange(sheet.getRange(5,weekNum+1));
});
}
它也只设置了最后一张纸