我有一个电子表格,可以在2个监视器上显示信息,该文件有5到30个标签,我一直在尝试获取以下脚本,该脚本带有时间驱动的触发器,以便每分钟从一个标签移动到下一个标签,但是我有两个问题。 1)-我需要循环以跳过4个选项卡(它们具有固定的名称),并且我目前无法找到可行的解决方案,以及2)-1分钟的时间驱动触发器没有执行任何操作,也不起作用。 >
以下是我正在测试和测试的2个脚本,以查看是否找到有效的脚本...我是FYI脚本的初学者。
脚本1:
function MoveNext() {
var spreadsheet = SpreadsheetApp.getActive();
var nextSheetIndex = spreadsheet.getActiveSheet().getIndex() + 1;
if (nextSheetIndex > spreadsheet.getSheets().length) { nextSheetIndex = 1; }
spreadsheet.setActiveSheet(spreadsheet.getSheets()[nextSheetIndex - 1],true);
还有脚本2 :该脚本旨在跳过我不想循环播放的4个标签
var ss = SpreadsheetApp.getActive();
var sheets = ss.getSheets();
for (i = 0; i < sheets.length; i++) {
switch (sheets[i].getSheetName()) {
case "T1":
case "T0":
case "Summary Panel":
case "Flight Info":
case "Template":
break;
default:
var nextSheetIndex = ss.getActiveSheet().getIndex() + 1;
if (nextSheetIndex > ss.getSheets().length) {
nextSheetIndex = 1;
}
ss.setActiveSheet(ss.getSheets()[nextSheetIndex - 1], true);
对于您可能会发现的基本错误,我深表歉意。我还是新手。
预先感谢您的帮助。
答案 0 :(得分:0)
您必须自己添加计时器代码,但这是如何移至下一个“批准”工作表的示例。
function MoveNext() {
var sheetsToSkip = ["Sheet3", "Sheet4", "Sheet7"];
var thisBook = SpreadsheetApp.getActive();
var sheetCount = thisBook.getNumSheets();
var thisSheet = SpreadsheetApp.getActiveSheet();
var thisSheetName = thisSheet.getName();
var thisSheetIndex = thisSheet.getIndex() - 1; //subtract one to get the array index
var allSheets = thisBook.getSheets();
var i = thisSheetIndex;
var notDone = true;
while (notDone) {
if (i == (sheetCount-1)) {
i = 0;
} else {
i++;
}
Logger.log('next sheet index is ' + i);
var nextName = allSheets[i].getName();
if (sheetsToSkip.indexOf(nextName) == -1) {
var nextSheet = allSheets[i];
Logger.log('next active sheet should be ' + nextSheet.getName());
thisBook.setActiveSheet(nextSheet);
notDone = false;
}
}
}