我有一个 Google 表格,用于跟踪进入我们团队的各种请求,其中一列是经过数据验证的下拉列表列,显示请求是否为“待分配”、“正在进行”、“已完成”等。
请求通过 Google 表单传入,此 Google 表格直接从该表单导入。我想做的是,每次收到新请求时,状态列都会自动验证为“待分配”,然后团队之一可以在分配后手动覆盖它。通过使用 ISBLANK,一旦相应的请求进来,我就能够让该列填充“待分配”,但问题是这会覆盖我预设的数据验证。
有什么方法可以配置工作表,以便当 X 列填充新请求时,我的状态列可以填充“等待分配”,但保留数据验证下拉列表?
TLDR:每当填充 A 列时,我希望同一行上的 D 列自动更改为“待分配”,同时保留数据验证下拉列表。有人可以帮忙吗?
这是一个示例 Apps 脚本,它将执行您指定的操作。
function onEdit(e) {
// Get the sheetname of the sheet being edited
var activeSheet = e.source.getActiveSheet();
var activeSheetName = activeSheet.getName();
// We only want to edit 'Build Sample Here' sheet
if (activeSheetName !== 'Build Sample Here') return;
// Get preset validation
var validationCell = activeSheet.getRange('D2');
var validation = validationCell.getDataValidation();
if (validation == null) return;
// Get validation choices
var choices = validation.getCriteriaValues(); // Array[][]
var pendingAllocation = choices[0][0]
// Check that e.range is column A and value is empty
if (e.range.getColumn() != 1.0 || e.oldValue != null) return;
// Otherwise, set Status on row to 'Pending Allocation'
const row = e.range.getRow();
const dropdown = activeSheet.getRange(row, 4);
dropdown.setValue(pendingAllocation);
}