我正在尝试根据数据验证列表的响应将一些显示/隐藏行逻辑放入Google工作表中。
如果用户从单元格C42的数据验证列表中选择值“常规帐户呼叫”,我想显示第43至53行以及第78至101行。同样,如果用户在单元格C40中勾选了一个复选框我想显示C41行。
我不知道我是否可以使用onEdit函数来“监视”多个单元格。
我发现了几个类似的脚本,它们基于同一行中单元格中的值来隐藏一行,并试图对其进行修改而无济于事。然后,我尝试回到基础知识,并放一些东西来监视单元格并隐藏另一行,再次无济于事
function onEdit(e) {
var ss = SpreadsheetApp.getActive()
var sheet = SpreadsheetApp.getActiveSheet()
var cell = sheet.getRange('D39')
var cellContent = cell.getValue()
if(cellContent === Y) {
Sheet.hideRow(40)
}
}
答案 0 :(得分:0)
您的代码应为:
ul li
有些错误:
ul li:first-child:not(.sub-menu li)
和function onEdit(e) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var cell = sheet.getRange('D39');
var cellContent = cell.getValue();
if(cellContent == 'Y') {
sheet.hideRows(11);
}
}
声明有效,您仍然可以
SpreadsheetApp中的工作表,而非ss
中的工作表,因此sheet
不是
被使用。ss
是将单元格与字符串进行比较的正确方法,如果删除引号,它将把它解释为不存在的变量Y。另外,ss
并不是必需的,因为它会检查类型和值,我们只需要该值。实际上,即使值相同但不同的type cellContent == 'Y'
而不是===
。 Javascript区分大小写,因此请小心!Sheet.hideRow
隐藏given Range中的行,因此我们必须使用sheet.hiderow
,否则您可以使用整数(在这种情况下为11)隐藏整个行。 hideRow
您没有得到任何这些错误,因为我想您正在测试更改D39值的代码。如果您手动执行代码,所有这些都会显示出来。
因此,要根据几个单元格隐藏几行,必须获取事件信息hideRows
,并获取正在编辑的单元格。
执行以下操作:
;
(e)
中的第二个数字是将显示的行数。