google-apps-script - 如何根据另一个下拉列表中的值自动设置下拉列表中的值
问题描述
我有一个包含 A - P 列的 googlesheet。B 列(GROUP)是一个下拉列表,N 列(执行状态)是一个下拉列表。我正在尝试根据我在 EXECUTION STATUS 下拉列表中选择的值自动在 GROUP 的单元格中设置特定值。
例如: GROUP 在下拉列表中具有以下值:
开发人员 QA 级别 1 支持 级别 2 支持
EXECUTION STATUS 在下拉列表中有以下值:
通过 失败 未执行 阻塞
这是我想要发生的事情:如果我选择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 正在设置一个文本值。我正在尝试从下拉列表中设置一个值。我不确定。有什么建议么?
解决方案
数据验证规则区分大小写字母。我认为这可能是您的问题的原因。因此,如果您的数据验证规则的值是DEVELOPER
大写字母,请按如下方式使用。
Group.setValue("DEVELOPER");
笔记:
- 在您的脚本中,我认为可以使用简单触发器的 OnEdit 事件触发器。但是从您的脚本来看,您似乎正在使用可安装的事件触发器。因此,请
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
}
}
}
参考:
推荐阅读
- vue.js - 如何使用模板在 vuetify v-data-table 中获取数组的索引
- nginx - 为什么open / mall总是匹配/在nginx中
- powerbi - Power BI 将列转换为行
- sql - PROC SQL - 满足条件时将数据转换为列
- android - Glide 无法在 Dialog Listview 项 ImageView 项中显示图像 URL
- excel - 看到错误:无法设置列表属性。类型不匹配
- node.js - nodejs中如何在RabbitMQ上设置安全层
- jquery - 在 jquery 中滚动不适用于具有 vh 高度的 div 类
- flutter - 如何摆脱Container的固定宽度和高度引起的错误
- javascript - 我需要测试正则表达式值以正确匹配我的输入文本