我的电子表格的第一列在每个单元格中都有下拉列表,其中包含选项“是”和“否”。基于Google Spreadsheets中的另一个单元禁用和启用单元格
如果选择“是”,我希望在同一行中启用单元格,下一列与另一个下拉列表中的选项“红色”和“蓝色”。如果选择“否”,则下一个单元应保持禁用状态。
到目前为止,我已经尝试在单元格B3中将自定义公式的数据验证菜单设置为=if(B2="Yes", "red", "blue")
,但它不起作用。
我该怎么做?
我的电子表格的第一列在每个单元格中都有下拉列表,其中包含选项“是”和“否”。基于Google Spreadsheets中的另一个单元禁用和启用单元格
如果选择“是”,我希望在同一行中启用单元格,下一列与另一个下拉列表中的选项“红色”和“蓝色”。如果选择“否”,则下一个单元应保持禁用状态。
到目前为止,我已经尝试在单元格B3中将自定义公式的数据验证菜单设置为=if(B2="Yes", "red", "blue")
,但它不起作用。
我该怎么做?
您可以onEdit和脚本这样做:
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getActiveSheet()
var col=e.range.getColumn()
var ro=e.range.getRow()
var nota=e.range.getA1Notation()
if(col==1){
var val=e.range.getValue()
if(val=="No"){
s.getRange(ro,2,1,1).setDataValidation(null)
}
else{
s.getRange(ro,2,1,1).clearContent()
var cell = s.getRange(ro,2,1,1);
var rule =
SpreadsheetApp.newDataValidation().requireValueInList(['Red', 'Blue']).build();
cell.setDataValidation(rule);
}}}
下面是一个例子份额。复制并尝试它。
https://docs.google.com/spreadsheets/d/1wHA1Rz9U9dr4n8DntLvZWPe4izck7xgi3ygUpx-uNmo/edit?usp=sharing
我得到这个脚本的错误:TypeError:无法从undefined读取属性“range”。 (第4行,“代码”文件) – user110327
听起来像您需要在脚本编辑器中批准脚本。如果不被批准,则事件(e)是空白的,脚本将失败。 –
查看YouTube从贾森Jurotich视频的这里有一个[链接](https://youtu.be/rW9T4XZy-7U)一个。 – Cooper