【问题标题】:How to hide Multiple columns in Google Sheet with Multiple checkboxes如何使用多个复选框隐藏 Google 表格中的多个列
【发布时间】: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


【解决方案1】:

您可以包含多个单元格以检查您 onEdit(e)

function onEdit(e) {
  let col = 0;
  switch(e.range.getA1Notation()) {
    case "B5":
      col = 8;
      break;
    case "B6":
      col = 12;
      break;
    case "B7":
      col = 16;
      break;
    default:
      return;
  }
  if( e.value === "TRUE" ) {
    e.source.getActiveSheet().hideColumns(col,4)
  }
  else {
    e.source.getActiveSheet().showColumns(col,4)
  }
}

【讨论】:

  • 如果这回答了您的问题,请将其标记为答案,以便其他有类似问题的人可以使用它来帮助他们解决问题。谢谢。
【解决方案2】:

谢谢@TheWizEd

你救我哈哈

我将 hideColumns(col,4) 交易到 hideColumns(col,qty) 因为在我的情况下它正在改变

非常感谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2014-07-11
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    相关资源
    最近更新 更多