需要帮助从应用程序脚本中的 "list from a range" 获取数据验证标准,以便我可以循环浏览这些值

Need help getting the data validation criteria from "list from a range" in an apps script so I can cycle through those values

我想在应用程序脚本中从 "list from a range" 获取数据验证标准,以便循环访问这些值。例如,在 A5 单元格中,我设置了数据验证,"criteria" 为 "List from a range",对应的范围为“'Grade K Class MTSS Profile'!B2:AH2”。我想要它 return "'Grade K Class MTSS Profile'!B2:AH2" 这样我就可以在这个范围内循环并对包含在该范围内的单元格做一些事情。

这是我目前的代码:

function onOpen(e) {
  SpreadsheetApp.getUi()

  .createMenu('MTSS Tools')
  .addItem('Save All Student Reports', 'saveAllStudentReports')
  .addToUi();
}


function saveAllStudentReports() {

var cell = SpreadsheetApp.getActive().getRange('A4');
var rule = cell.getDataValidation();
var ui = SpreadsheetApp.getUi();

if (rule != null) {
  var criteria = rule.getCriteriaType();
  var args = rule.getCriteriaValues();
  ui.alert("Has rule");
  ui.alert('The data validation rule is ' + criteria + args);
}
else
{
  ui.alert("NO rule");
}
}

但是,我没有得到实际范围。想法?非常感谢!

如您在 documentation 中所见:

getCriteriaValues returns:

Object[] — an array of arguments appropriate to the rule's criteria type; the number of arguments and their type match the corresponding require...() method of the DataValidation class

所以args是一个Range对象,意思是Range class can be used, like getA1Notation:

中的所有方法
ui.alert('The data validation rule is ' + criteria + ' ' + args[0].getA1Notation()