【发布时间】:2019-08-30 10:12:55
【问题描述】:
我编写了一些代码,该代码应该在显示“分支”的列中使用一个值,并基于此更改“分配给 OE”中的下拉菜单(对于上下文,OE 是员工),因此可以根据他们所在的分支机构从下拉列表中选择 OE 名称。该列表将仅显示来自相应分支机构的员工。
这是我的电子表格的副本,已清除不相关的列:https://docs.google.com/spreadsheets/d/1dzTYQL1YPX6z6qtV4_tNl4ntBMLqcMQYoPcw6cKuyAw/edit?usp=sharing
销售订单表的 A 列是我希望每一行中的下拉列表的位置,OE 名称表是 OE(员工)列表所在的位置,下拉列表应填充这些列取决于分支。
我写的脚本是:
function onEdit() {
var app = SpreadsheetApp;
var ss = app.openById("1UM[MASK]0M");
var OEsheet = ss.getSheetByName("OE names");
var SOsheet = ss.getSheetByName("Sales Order");
var activeCell = SOsheet.getActiveCell();
if(activeCell.getColumn() == 1 && activeCell.getRow() > 1 && ss.getSheetName() == SOsheet) {
activeCell.offset(0, 1).clearContent().clearDataValidations();
var OEnames = OEsheet.getRange(1, 1, 1, OEsheet.getLastColumn()).getValues();
var OEnamesIndex = OEnames[0].indexOf(activeCell.getValue()) + 1;
if(OEnamesIndex != 0){
var validationRange = OEsheet.getRange(2, OEnamesIndex, OEsheet.getLastRow());
var validationRule = app.newDataValidation().requireValueInRange(validationRange).build();
activeCell.offset(0, -6).setDataValidation(validationRule);
}
}
}
这个脚本似乎没有做任何事情,但我不知道为什么。
谢谢
【问题讨论】:
-
makeIndex未定义。所以if(makeindex)循环内的整个代码都不会执行。 -
哦,是的,我刚刚将其更改为 OEnamesIndex 但它仍然没有执行任何操作,因此我更新了我的问题的代码。奇怪的是它之前运行时没有显示该错误。
-
请将执行记录复制到您的问题中。
标签: google-apps-script google-sheets