我有一个带有A到P列的googlesheet。B列(GROUP)是一个下拉列表,N列(EXECUTION STATUS)是一个下拉列表。我试图根据我在“执行状态”下拉列表中选择的值,自动为GROUP单元格设置一个特定值。
例如: GROUP在下拉列表中具有以下值:
开发者 质量检查 1级支持 2级支持
执行状态在下拉列表中具有以下值:
通过 失败 未执行 封锁
这就是我想发生的事情: 如果我选择 FAILED (执行失败)作为EXECUTION STATUS(执行状态),我希望GROUP会自动更改为 DEVELOPER 。
这是我的功能:
function changeGroup(event)
{
var ColN = 14; // Column Number of "N"
var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColN)
{
// An edit has occurred in Column N
var state = changedRange.getValue();
var Group = event.source.getActiveSheet().getRange(changedRange.getRow(),ColN-12);
switch (state)
{
case "FAILED":
// Select DEVELOPER from dropdown list
Group.setValue("Developer");
break
}
}
}
我认为我的问题是 Group.setValue(“ Developer”)行。 SetValue正在设置文本值。我正在尝试从下拉列表中设置一个值。我不确定。有什么建议吗?
答案 0 :(得分:2)
数据验证规则区分大写字母和小写字母。我认为这可能是您遇到问题的原因。因此,如果您的数据验证规则的值是大写字母的DEVELOPER
,请按以下方式使用它。
Group.setValue("DEVELOPER");
changeGroup
的功能是否已作为可安装的OnEdit事件触发器安装。顺便说一句,如果您要运行特定工作表的脚本,请按如下所示修改if (changedRange.getColumn() == ColN)
。
if (changedRange.getColumn() == ColN && changedRange.getSheet().getSheetName() == "Sheet1")
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
在您的情况下,也可以使用简单触发器。那么如何测试以下脚本呢?使用此脚本时,请复制并粘贴以下脚本。然后,请更改“ N”列的下拉列表。
function onEdit(event) // <--- Modified
{
var ColN = 14; // Column Number of "N"
var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColN)
{
// An edit has occurred in Column N
var state = changedRange.getValue();
var Group = event.source.getActiveSheet().getRange(changedRange.getRow(),ColN-12);
switch (state)
{
case "FAILED":
// Select DEVELOPER from dropdown list
Group.setValue("DEVELOPER");
break
}
}
}