Google apps script 基于内容查询返回命名范围

Google apps script 基于内容查询返回命名范围,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在建立一个脚本,它将通知人们他们计划工作的日期。我有一个日历,上面有每天的命名范围(block1、block2等)。我需要脚本去下的名称列表,并为每个名称,查询块(s)它出现在 例如: 比尔的名字出现在第1、3和5区。因此,对于他来说,它将返回“Block 1、Block 2和Block 3” 我能够从a1符号和相反的符号中提取名称,并查询字符串出现在哪个单元格中,我的问题是缩小单元格和它出现的范围之间的差距 我的库中有一组函数,用于检查单元格是否在给定范围内,甚至可以访问命名范围集 fun

我正在建立一个脚本,它将通知人们他们计划工作的日期。我有一个日历,上面有每天的命名范围(block1、block2等)。我需要脚本去下的名称列表,并为每个名称,查询块(s)它出现在

例如: 比尔的名字出现在第1、3和5区。因此,对于他来说,它将返回“Block 1、Block 2和Block 3”


我能够从a1符号和相反的符号中提取名称,并查询字符串出现在哪个单元格中,我的问题是缩小单元格和它出现的范围之间的差距

我的库中有一组函数,用于检查单元格是否在给定范围内,甚至可以访问命名范围集

function IsInRange(checkRange, targetCell) {
  //--- check the target cell's row and column against the given
  //    checkrange area and return True if the target cell is
  //    inside that range
  var targetRow = targetCell.getRow();
  if (targetRow < checkRange.getRow() || targetRow > checkRange.getLastRow()) return false;

  var targetColumn = targetCell.getColumn();
  if (targetColumn < checkRange.getColumn() || targetColumn > checkRange.getLastColumn()) return false;

  //--- the target cell is in the range!
  return true;
}

function IsInNamedRange(checkCell) {
  var namedRanges = SpreadsheetApp.getActive().getNamedRanges();
  for (var index = 0; index < namedRanges.length; ++index) {
    if (IsInRange(namedRanges[index].getRange(), checkCell)) {
      var rangeName = namedRanges[index].getName();
      return rangeName;
    }
  }
  return "";
}

function main() {
  var selectedCell = SpreadsheetApp.getActive().getActiveCell();
  var result = IsInNamedRange(selectedCell);
  if (result == "") {
    Logger.log('the selected cell ' + selectedCell.getA1Notation() + ' is not in a named range');
  } else {
    Logger.log('the selected cell ' + selectedCell.getA1Notation() + ' is in the range named ' + result);
  }
}
函数IsInRange(检查范围,目标单元格){
//---对照给定值检查目标单元格的行和列
//检查范围区域,如果目标单元格为
//在这个范围之内
var targetRow=targetCell.getRow();
if(targetRowcheckRange.getLastRow())返回false;
var targetColumn=targetCell.getColumn();
if(targetColumncheckRange.getLastColumn())返回false;
//---目标单元格在范围内!
返回true;
}
函数IsInNamedRange(检查单元格){
var namedRanges=SpreadsheetApp.getActive().getNamedRanges();
对于(变量索引=0;索引
Roll your own solution(滚动您自己的解决方案)——没有一种方法可以检查某个范围是否是任何命名范围的成员