【发布时间】:2026-01-30 08:25:01
【问题描述】:
我想要的下拉列表应该是动态的。因此,根据我在 D 和 E 列中选择的选项,E 列中的下拉列表应该只显示 C 列中的产品。下面我添加了代码,您可以在其中看到我是如何完成其他下拉列表的。
var mainWsName = "Inkoop";
var wsVerkoop = "Verkoop"
var sittardWsName = "Sittard";
var merkColumn = 4;
var modelColumn = 5;
var categorieColumn = 6;
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(mainWsName);
var wVerkoop = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(wsVerkoop);
var wsSittard = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sittardWsName);
var arraySittard = wsSittard.getRange(2,1,wsSittard.getLastRow()-1,3).getValues();
function categorie(){
}
function onEdit(e){
var activeCell = e.range;
var val = activeCell.getValue();
var r = activeCell.getRow();
var c = activeCell.getColumn();
var wsName = activeCell.getSheet().getSheetName()
if(wsName == mainWsName && c == merkColumn && r > 1){
if(val === ""){
ws.getRange(r ,modelColumn).clearContent();
ws.getRange(r ,modelColumn).clearDataValidations();
ws.getRange(r ,categorieColumn).clearContent();
} else{
ws.getRange(r ,modelColumn).clearContent();
var filterarraySittard = arraySittard.filter(function(o){return o[0] === val});
var listToApply = filterarraySittard.map(function(o){ return o[1]});
var cell = ws.getRange(r ,modelColumn);
applyValidationToCell(listToApply, cell);
}
}
if(wsName == wsVerkoop && c == merkColumn && r > 1){
if(val === ""){
wVerkoop.getRange(r ,modelColumn).clearContent();
wVerkoop.getRange(r ,modelColumn).clearDataValidations();
wVerkoop.getRange(r ,categorieColumn).clearContent();
} else{
wVerkoop.getRange(r ,modelColumn).clearContent();
var filterarraySittard = arraySittard.filter(function(o){return o[0] === val});
var listToApply = filterarraySittard.map(function(o){ return o[1]});
var cell = wVerkoop.getRange(r ,modelColumn);
applyValidationToCell(listToApply, cell);
}
}
} // end onEdit
function applyValidationToCell(list,cell){
var rule = SpreadsheetApp.newDataValidation()
.requireValueInList(list)
.setAllowInvalid(false)
.build();
cell.setDataValidation(rule);
}
【问题讨论】:
-
欢迎来到 *,请借此机会参加 tour 并学习如何使用 How to Ask、format code、minimal reproducible example 和 Learn More
标签: google-apps-script google-sheets triggers