Javascript 如何在单元格下拉函数的数据验证中添加IF/ELSE函数?
我正在尝试使用If/Else函数创建一个单元格内数据验证下拉菜单(在谷歌电子表格中) 实际上,我有两个列表范围,从中我只想显示一个由变量单元格决定的列表 听起来是这样的:如果A1是ABC,那么在单元格下拉列表中显示范围1;如果A1是XYZ,那么在单元格下拉列表中显示范围2 这是密码。让我知道我做错了什么Javascript 如何在单元格下拉函数的数据验证中添加IF/ELSE函数?,javascript,google-apps-script,Javascript,Google Apps Script,我正在尝试使用If/Else函数创建一个单元格内数据验证下拉菜单(在谷歌电子表格中) 实际上,我有两个列表范围,从中我只想显示一个由变量单元格决定的列表 听起来是这样的:如果A1是ABC,那么在单元格下拉列表中显示范围1;如果A1是XYZ,那么在单元格下拉列表中显示范围2 这是密码。让我知道我做错了什么 function dataval (){ var cell = SpreadsheetApp.getActive().getRange('B12'); if (cell=="Price"
function dataval (){
var cell = SpreadsheetApp.getActive().getRange('B12');
if (cell=="Price") {
var cell = SpreadsheetApp.getActive().getRange('C12');
var range = SpreadsheetApp.getActive().getRange('D12:D19');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
};
if (cell=="Technical") {
var cell = SpreadsheetApp.getActive().getRange('C12');
var range = SpreadsheetApp.getActive().getRange('E12:E19');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
};
};
附言:我对编码还不熟悉&这是我第一次在软件上发表文章 代码的一个问题是比较
单元格==“Price”
。变量cell
是类的对象,而不是字符串。要获取它包含的值,您需要cell.getValue()
,因此比较将是cell.getValue()=“Price”
您还应该处理B12
内容更改的事件。一种简单的方法是将数据验证代码放入触发器中,并检查编辑是否为B12:例如
if (e.range.getA1Notation() == 'B12') {
// change data validation
}
如果目标只是有一个规则,强制输入在两个范围中的一个范围内(取决于另一个单元格),则可以不使用脚本,使用带有
If
和index
的自定义公式。但这并不能提供价值的下降 代码的一个问题是比较单元格==“Price”
。变量cell
是类的对象,而不是字符串。要获取它包含的值,您需要cell.getValue()
,因此比较将是cell.getValue()=“Price”
您还应该处理B12
内容更改的事件。一种简单的方法是将数据验证代码放入触发器中,并检查编辑是否为B12:例如
if (e.range.getA1Notation() == 'B12') {
// change data validation
}
如果目标只是有一个规则,强制输入在两个范围中的一个范围内(取决于另一个单元格),则可以不使用脚本,使用带有
If
和index
的自定义公式。但这并不能提供价值的下降 谢谢,扎克。你能解释一下“geta1符号”吗?首先,我在代码中尝试了它,但把一切都搞糟了。谢谢,扎克。你能解释一下“geta1符号”吗?首先,我在代码中尝试了它,但把一切都搞糟了。