获取具有特定值 Google 表的单元格集合

Get Collection Of Cells With A Certain Value Google Sheets

我有一个要单击的按钮,它会将我滚动到某个位置。我这样做是为了让我进入第 100 行:

function ScrollMe(){
    var file = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = file.getActiveSheet();
    var row = 100;
    file.setActiveCell(sheet.getRange(row,1));
}

如果找到列 'B' 中包含 (REGEX=>"Version: [0-9]?[0-9]?[0-9][.]?[0-9]?[0-9]? [a-zA-Z]+") 的所有单元格的列表,然后转到最后一个值,我想做什么像。所以基本上,转到 'B' 列中以 "Version: " 开头的最后一个单元格,然后有一位、两位或三位数字、一个小数点,然后是两个数字,然后是任何事后的信件文本数量。我希望它看起来像这样:

function ScrollMe(){
    var file = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = file.getActiveSheet();
    //C# lambda
    var row = FindAll(a=> a.COLUMN == 'B' && a.VALUE.RegexMatch("Version: [0-9]?[0-9]?[0-9][.]?[0-9]?[0-9]? [a-zA-Z]+"));
    file.setActiveCell(sheet.getRange(row,1));
}

我假设您希望脚本找到 B 列中与您的正则表达式匹配的最后一个单元格。如果是这种情况,您可以使用此代码:

function ScrollMe() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getRange("B:B").getValues();
  var regex = new RegExp(
    'Version: [0-9]?[0-9]?[0-9][.]?[0-9]?[0-9]? [a-zA-Z]+');
  for (var i = 0; i < data.length; i++) {
    if (regex.test(data[i][0])) {
      var lastMatch = i;
    }
  }
  sheet.setActiveRange(sheet.getRange(lastMatch + 1, 2));
}

之前的代码使用了您的方法。它将首先读取完整的 B 列,然后迭代以找到与正则表达式匹配的最后一个单元格;当它找到该单元格时,它将 select 它。如果您对功能有任何疑问,请问我。