【发布时间】:2022-08-16 09:44:14
【问题描述】:
我希望我能很好地解释这一点,因为我完全没有编码背景。幸运的是,我在这里找到了一个脚本,它将根据复选框的状态隐藏一列。
代码是:
function onEdit(e) {
if (e.range.getA1Notation() != \"B5\") return;
if (e.value == \"TRUE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideColumns(8,4);
}
else if (e.value == \"FALSE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().showColumns(8,4);
}
}
如果选中 B5,这将隐藏 H 到 K 列。
我的问题是我有不同的复选框需要隐藏不同的列,但我一次只能让 1 个脚本工作。
这是我需要的:
选中 B5 时,我需要隐藏 H、I、J 和 K 列。
选中 B6 时,我需要隐藏 L、M、N 和 O 列。
选中 B7 时,我需要隐藏 P、Q、R 和 S 列。
依此类推...如果选中多个单元格,则需要隐藏上面列出的多个范围。
由于我不知道自己在做什么,我想我会为每个场景制作一个新脚本。我意识到可能有一种更简单的方法,但如果需要,这对我有用。
所以,如果我有一个脚本保存为
function onEdit(e) {
if (e.range.getA1Notation() != \"B5\") return;
if (e.value == \"TRUE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideColumns(8,4);
}
else if (e.value == \"FALSE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().showColumns(8,4);
}
}
另一个另存为
function onEdit(e) {
if (e.range.getA1Notation() != \"B6\") return;
if (e.value == \"TRUE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideColumns(12,4);
}
else if (e.value == \"FALSE\") {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().showColumns(12,4);
}
}
只有第二个脚本有效。同样,如果我添加第三个脚本,那么只有第三个有效,前两个无效。
我怎样才能让每个人都独立工作?
-
您是否有工作表样本,我们可以在其中工作或测试代码或复制它?
标签: google-apps-script google-sheets