【发布时间】:2020-08-21 22:32:24
【问题描述】:
//CREATE PRIMARY DROPDOWN LIST
function createPrimaryDrpdwon() {
/* SET FOLLOWING VARIABLES */
var dataSS = "Lookup"; //Name of the sheet that contain data for dropdown lists
var dropSS = "Jun 15"; //Name of the sheet which dropdown list to be created
var primaryDataRange = "A4:A14"; //Data range for primary dropdown
var primaryDropRange = "H3:H200"; //Range which primary dropdown set
var primaryDropList = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(dataSS).getRange(primaryDataRange).getValues();
var primaryDropRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(dropSS).getRange(primaryDropRange);
var validationRule = SpreadsheetApp.newDataValidation().requireValueInList(primaryDropList).build();
primaryDropRange.setDataValidation(validationRule);
}
//CREATE SECONDARY DROPDOWN LIST
function onEdit(){
/* SET FOLLOWING VARIABLES */
var dataSS = "Lookup"; //Name of the sheet that contain data for dropdown lists
var dropSS = "Jun 15"; //Name of the sheet which dropdown list to be created
var allDataRange = "B5:C183"; //Data range for dropdown list (both primary and dependent)
var primaryDDCol = 8; //Column number of the primary drop down
var dropSS_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(dropSS);
var dropDData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(dataSS).getRange(allDataRange).getValues();
var activeCell = dropSS_.getActiveCell();
var activeColumn = activeCell.getColumn();
var activeRow = activeCell.getRow();
if(activeColumn==primaryDDCol){
var dep_Col = primaryDDCol+1;
var dep_Row = activeRow;
var depCell = dropSS_.getRange(dep_Row, dep_Col);
var primarySelected = activeCell.getValue();
var validationRule = SpreadsheetApp.newDataValidation().requireValueInList(getDependentList(dropDData,primarySelected)).build();
depCell.setDataValidation(validationRule);
}
}
function getDependentList(dropDData,primarySelected){
var dependenList = [];
var j = 0;
if(dropDData != null){
for(i=0; i<dropDData.length; i++){
if(dropDData[i][0]==primarySelected){
dependenList[j] = dropDData[i][1];
j++;
}
}
}
return dependenList;
}
我正在尝试编写一个脚本,该脚本将允许在工作簿中的多个工作表上进行相关的下拉菜单。我已经创建了一个在一张纸上工作的脚本,它工作得很好,但我必须更改每个工作表的名称,例如,如果每个选项卡是一个月中的一周“5-4-20”、“5-11” -20"、"5-18-20" 等,但在该周选项卡中收集了相同的信息,我如何为相同的依赖下拉菜单运行脚本以对每个选项卡以相同的方式工作?
【问题讨论】:
-
可能类似于
if(e.range.getSheet().getName().match(/\d{1,}-\d{1,}-\d{2}/) && other stuff ....} -
你的问题太宽泛了。请集中注意力。
-
欢迎来到 StackOverFlow,请借此机会参加 tour 并学习如何使用 How to Ask、format code、minimal reproducible example 和 Tag Info
标签: google-apps-script google-sheets dropdown