javascript - 适用于 Google 表格的 Apps 脚本(onedit 功能)

标签 javascript google-apps-script google-sheets

在 google 表格上尝试根据特定单元格中的值隐藏/取消隐藏行,并尝试在 AppsScript 中为此编写脚本。发现一个独立工作的(如果 B55=NO 它隐藏了下一行 64):

function onEdit(e) { 
  var activeSheet = e.source.getActiveSheet(); 
  var range = e.range; 
  if (activeSheet.getName() !== 'Inputs' || range.getA1Notation() !== 'B55') return; 
  if (e.value === 'No') { 
    activeSheet.hideRows(56, 64);
  }  else if (e.value === 'Yes') { 
      activeSheet.showRows(56, 64); 
      } 
}
但是对于多个单元格和多行,我需要相同的内容,一旦我展开它,只有代码的最后一部分有效,而不是第一部分:
function onEdit(e) { 
  var activeSheet = e.source.getActiveSheet(); 
  var range = e.range; 
  if (activeSheet.getName() !== 'Inputs' || range.getA1Notation() !== 'B55') return; 
  if (e.value === 'No') { 
    activeSheet.hideRows(56, 64);
  }  else if (e.value === 'Yes') { 
      activeSheet.showRows(56, 64); 
      } 
}
function onEdit(e) { 
  var activeSheet = e.source.getActiveSheet(); 
  var range = e.range; 
  if (activeSheet.getName() !== 'Inputs' || range.getA1Notation() !== 'B121') return; 
  if (e.value === 'No') { 
    activeSheet.hideRows(122, 67);
  }  else if (e.value === 'Yes') { 
      activeSheet.showRows(122, 67); 
      } 
}
从这里 Cell B121 正在工作,但我的 B55 停止工作。有小费吗?谢谢!

最佳答案

你需要在onEdit上合并2个函数,试试

function onEdit(e) { 
  var activeSheet = e.source.getActiveSheet(); 
  var range = e.range; 
  if (activeSheet.getName() !== 'Inputs') return; 
  if (range.getA1Notation() == 'B55'){ 
    if (e.value === 'No') { 
      activeSheet.hideRows(56, 64);
    }  else if (e.value === 'Yes') { 
      activeSheet.showRows(56, 64); 
    } 
  }
  if (range.getA1Notation() == 'B121') { 
    if (e.value === 'No') { 
      activeSheet.hideRows(122, 67);
    }  else if (e.value === 'Yes') { 
      activeSheet.showRows(122, 67); 
    } 
  }
}

关于javascript - 适用于 Google 表格的 Apps 脚本(onedit 功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68132327/

相关文章:

javascript - 如何每隔 n 秒更改 Canvas 上圆圈的颜色?

google-sheets - Google 电子表格时间驱动事件不会触发

google-apps-script - 在之前的 onFormSubmit 完成之前,如何阻止表单提交。

javascript - 如何将多个 html 表单发送到同一文件/数据库中的不同 google 工作表?我有一张 google 表格,总共有 3 张

javascript - 意外的标记?

javascript - 可以在 jQuery 中调用常规 JavaScript 函数吗?

javascript - 尝试使用 Bootstrap 导航栏切换

javascript - 嵌套的 WHILE 循环未按预期运行 - Javascript/Google Apps 脚本

javascript - 将同一 GAS 元素中的 CSS 和 JS 导入电子表格 HtmlOutput

google-sheets - Google 电子表格 : How to get a first (Nth) row/column from a range?(内置函数)