我创建了一个“绑定到电子表格”的 Google Apps 脚本。当用户单击 Sheet1 中的特定单元格时,我尝试以编程方式将活动工作表更改为 Sheet2。 从文档来看,这应该很简单;有一个名为
activate() 的 Sheet 方法。但是,通过触发器调用此函数不会更改活动工作表 - Sheet1 保持焦点。其他函数如 hideSheet() 和 showSheet() 可以立即工作,但不是 activate()
。
:
这是我正在使用的代码:
// I want to make my "Accounts" sheet the active sheet
function onSelectionChange(event) {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getSheetByName("Accounts")
sheet.activate()
// I tried flushing, waiting, and trying again; still doesn't work
SpreadsheetApp.flush()
Utilities.sleep(2000)
sheet.activate()
// However, hiding or showing the sheet works immediately:
sheet.hideSheet()
}
有趣的是,在故障排除期间,我有两次重新打开电子表格,并且相同的代码神秘地开始工作
;但是,在 Chrome 中刷新页面后,activate()
功能再次停止工作。这让我怀疑这是否可能是一个 Apps 脚本错误。