【发布时间】:2018-01-15 23:36:11
【问题描述】:
我想使用基于时间的触发器来执行以下脚本。
其背后的想法是在屏幕上显示电子表格,并每分钟自动跳转到工作表的另一部分(就像您单击内部超链接时一样)。
因此,在设置基于时间的触发器时,脚本不会抛出任何错误,并且 viewportCount 也会每分钟相应地变化 -> 只有 活动范围根本不会改变(因此它不显示工作表的其他部分)。
当手动或通过例如触发脚本时onEdit 触发器,一切正常,活动范围发生变化。您知道为什么基于时间的触发器似乎无法与 setActiveRange 结合使用吗?
function autoJump() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
var autoPlayConfig = sheet.getRange('P7').getValue();
var viewportCount = sheet.getRange('Q7').getValue();
var range1 = sheet.getRange("A1");
var range2 = sheet.getRange("A30:A31");
var range3 = sheet.getRange("A53:A54");
if (autoPlayConfig == true) {
switch(viewportCount) {
case 1:
sheet.getRange('Q7').setValue(viewportCount+1);
sheet.setActiveRange(range1);
break;
case 2:
sheet.getRange('Q7').setValue(viewportCount+1);
sheet.setActiveRange(range2);
break;
case 3:
sheet.getRange('Q7').setValue(1);
sheet.setActiveRange(range3);;
break;
default:
sheet.setActiveRange(range1);
}
}
}
感谢和最好的问候, 丹尼尔
【问题讨论】:
标签: google-apps-script google-sheets