下面是我正在处理的文档的副本:https://docs.google.com/spreadsheets/d/1amIjjQsA8sNKf7mZvE1GjsF-377YOWxVIRk6HRgQjfA/edit?usp=sharing
我希望下拉菜单(紫色-D3-L3)可以根据所选内容修改一个单元格的范围。下面是我理想结果的图表(数据验证选择是粗体,后面是预期的结果):
2小时延迟清晰的细胞值和灰色-行4-18-没有收集数据。
没有明确的单元格值和灰色行4-18-没有收集数据。
活动自动填充绿色细胞(第4-8行)与2保持“和”函数。
指定明确的单元格值和灰色的第4-18行--没有收集数据,咨询室自动调节绿色细胞(第4-8行),0保留"sum“函数。
早期解雇,明确的单元格值和灰色-行4-18-没有收集的数据。
外地旅行自动填充绿色细胞(第4-8行)与2保持“和”函数。
学习自动填充绿色细胞(第4-8行)与2保持“和”功能。
在类中,自动填充绿色单元格(第4-8行)为空白,保留"sum“函数。
学校干预自动调节绿色细胞(第4-8行),并保留“和”功能。
会议自动填充绿色细胞(第4-8行)与2保持“和”函数。
治疗自动填充绿色细胞(第4-8行)与2保持“和”功能。
我一个人走了这么远。充其量,我可以让它对单元格进行灰色化,但它也会清除格式。如果下拉选择被还原回另一个选择,则格式不会返回。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getActiveSheet()
var nota=e.range.getA1Notation()
if(nota=="D3"){
var stat=e.range.getValue()
if(stat=="2hr Delay", 'Absent', 'Appointment', 'Early Dismissal'){
s.getRange("D4:D18").clearContent(null)
s.getRange("D4:D18").clearContent("D4:D18");
}
else{
s.getRange("D4:D18").clearContent("D4:D18");
var cell = s.getRange("D4:D18");
}}}
发布于 2018-03-09 03:30:30
有界脚本包含两个onEdit函数--这不是一个很好的实践,因为这可能导致混淆,而另一个脚本通常只执行一个,通常是在最后一个gs文件上执行。
另一个观察,在这个例子中,关于问题中的代码,clearContent语法不包括参数。换句话说,而不是
s.getRange("D4:D18").clearContent(null)
正确的语法是
s.getRange("D4:D18").clearContent();
而不是
s.getRange("D4:D18").clearContent("D4:D18");
正确的语法是
s.getRange("D4:D18").clearContent();
注意:当将模板!D3更改为2hr Delay
时,执行记录显示以下错误
执行失败:无法找到方法clearContent(null)。(第8行,文件"WIP")
https://webapps.stackexchange.com/questions/115248
复制相似问题