Google sheets GoogleSheets:基于单元格值隐藏行

Google sheets GoogleSheets:基于单元格值隐藏行,google-sheets,Google Sheets,我对谷歌脚本非常陌生,并且已经回顾了与我现在问的问题类似的问题,但cannon似乎将先前的建议重新融入了我想要做的事情中。我在工作表的A2单元格中有一个简单的“是/否”下拉列表。如果选择“是”,我想隐藏第5行和第7行。我一直在做以下工作: Prior Year my onEdit(e) { Logger.log('e.value: ' + e.value); var cellEdited = e.range.getA1Notation(); Logger.log('cellEdite

我对谷歌脚本非常陌生,并且已经回顾了与我现在问的问题类似的问题,但cannon似乎将先前的建议重新融入了我想要做的事情中。我在工作表的A2单元格中有一个简单的“是/否”下拉列表。如果选择“是”,我想隐藏第5行和第7行。我一直在做以下工作:

 Prior Year my onEdit(e) {
  Logger.log('e.value: ' + e.value);

 var cellEdited = e.range.getA1Notation();
 Logger.log('cellEdited: ' + cellEdited);

if (cellEdited === "A2" && e.value === "yes") {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("TX MD 2017");
var maxRows = sheet.getMaxRows();

theSheet.hideRows(5,7);
 };
}

任何帮助或轻推都会很有帮助

代码对大小写很挑剔

在项目描述中,您提到的选项为“是”/“否”,其中“Y”大写。如果确实是这样,那么
e.value==“yes”
将无法按预期工作。在比较字符串时,请确保其大小写相同:

`e.value.toLowercase() === 'yes'`
错误的功能:
Sheet.hideRows

hideRows
的API声明第一个参数是起始行,第二个参数是起始行之后要隐藏的行数。这使得代码隐藏下面的7行,包括第5行。如果要隐藏第5行和第7行,应执行以下操作:

theSheet.hideRow(5);
theSheet.hideRow(7);
避免添加不必要的权限

使用
SpreadsheetApp.getActiveSpreadsheet
时,需要允许脚本访问和修改电子表格。这违反了最小特权的安全/保护原则​; 通常,您希望为用户提供尽可能少的访问权限以完成其任务。由于可以使用
e.source
访问事件对象中的电子表格,因此最好只使用它:

var ss = e.source;
var sheet = ss.getSheetByName("TX MD 2017");

// You don't use maxRows, so get rid of it
sheet.hideRow(5); // theSheet is not defined
sheet.hideRow7);
上一年我的?

这是无效的JavaScript。应该是:

function onEdit(e) {
    // code
}