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