Google Apps Script 下拉菜单按索引随机选择实现方法问询
实现方案
通过Google Apps Script读取H3单元格的列表型数据验证规则的候选值,随机抽取后写入即可,整合了你已有的S3随机逻辑的完整代码如下:
// 此处ss为你已定义的Spreadsheet实例,如const ss = SpreadsheetApp.getActiveSpreadsheet() // S3原有随机逻辑 var randSize = Math.floor(Math.random() * (20 - 1 + 1)) + 1 ss.getRange("S3").setValue(randSize) // 新增H3随机逻辑 const h3Range = ss.getRange("H3") const dataValidation = h3Range.getDataValidation() if (dataValidation) { const validationType = dataValidation.getType() let options = [] // 兼容手动输入选项的下拉列表 if (validationType === SpreadsheetApp.DataValidation.Type.VALUE_IN_LIST) { options = dataValidation.getCriteriaValues()[0] } // 兼容引用单元格区域生成的下拉列表 else if (validationType === SpreadsheetApp.DataValidation.Type.VALUE_IN_RANGE) { const refRange = dataValidation.getCriteriaValues()[0] options = refRange.getValues().flat().filter(item => !!item) } // 非空选项下随机取值写入 if (options.length) { const randomIndex = Math.floor(Math.random() * options.length) h3Range.setValue(options[randomIndex]) } }
注意说明
- 代码自动适配两种常见的下拉列表配置模式,无需额外修改
- 引用区域生成的下拉会自动过滤空单元格值,不会选中空内容
- 如果H3未配置数据验证规则,代码不会执行修改操作,不会报错
内容的提问来源于stack exchange,提问作者morris.a
相关产品推荐
相关产品推荐

