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

问题描述 投票:1回答:1

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

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

如果在列'B'中找到包含(REGEX =>“版本:[0-9]?[0-9]?[0-9] [。 ]?[0-9]?[0-9]?[a-zA-Z] +“),然后转到最后一个类似的值。因此,基本上,转到列“ B”中以“版本:”开头的最后一个单元格,然后具有一个,两位或三位数的数字,一个小数点,然后是两个数字,其后是任意数量的字母事实之后的文字。我希望它看起来像这样:

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));
}
google-apps-script google-sheets row-number
1个回答
0
投票

我假设您希望脚本在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,然后迭代查找与正则表达式匹配的最后一个单元格。当找到该单元格时,它将选择它。请问我对功能是否有任何疑问。

© www.soinside.com 2019 - 2024. All rights reserved.