我正在尝试找到一种方法,当标签从Sheet1更改为Sheet2时触发触发器。我认为onChange触发器会这样做,但事实证明它在添加新工作表或删除列/行时起作用。
此致 Saad的
答案 0 :(得分:0)
没有触发器可以在电子表格中更改任何内容 更改用户正在查看的选项卡是(几乎)纯客户端操作,不会修改后端中的任何属性。
Google Spreadsheets在您查看它们时只是存储所有值,公式和脚本的html表示形式。这个html表示的一部分是表单显示为选项卡。
答案 1 :(得分:0)
onSelectionChange
已在April 22, 2020发布。
但是在发布之日无法使用。但是现在,我可以确认必须能够使用它。这样,在当前阶段,可以使用onSelectionChange事件触发器来实现您的目标。
示例脚本如下。
onOpen
并将当前工作表放入PropertiesService。onSelectionChange
的事件对象似乎没有有关制表符更改的信息。因此,为了检测选项卡的更改,我使用了PropertiesService。onSelectionChange
由onSelectionChange事件触发器运行,并将A1Notation放置到单元格中。function onOpen(e) {
const prop = PropertiesService.getScriptProperties();
const sheetName = e.range.getSheet().getSheetName();
prop.setProperty("previousSheet", sheetName);
}
function onSelectionChange(e) {
const prop = PropertiesService.getScriptProperties();
const previousSheet = prop.getProperty("previousSheet");
const range = e.range;
const a1Notation = range.getA1Notation();
const sheetName = range.getSheet().getSheetName();
if (sheetName != previousSheet) {
range.setValue(`Changed tab from ${previousSheet} to ${sheetName}. ${a1Notation}`);
// When the tab is changed, this script is run.
} else {
range.setValue(a1Notation);
}
prop.setProperty("previousSheet", sheetName);
}
使用上述脚本时,可以如下检测单元格单击和选项卡更改。