繁体   English   中英

如何在 Google Scripts 中获取具有特定文本的单元格的行号

[英]How to get row number of a cell with a specific text in Google Scripts

在我的 N 列中,只有一个单元格带有文本 - “Double-Clic:如何获取该单元格的行号。

我的部分代码有错误:

function AddNewRows() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var a = spreadsheet.getRange("N1:N" + spreadsheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().getRow()+1;
  var b = a+6
  ;

Edit 2:
Above issue is resolved. Thank you so much to all those who answered it.

But getting error in this last line = Range not found.

function AddNewRows() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var a = spreadsheet.getRange("N1:N" + spreadsheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().getRow()+1;
  var b = a+6
  spreadsheet.getRange(a,b).activate();
  spreadsheet.setCurrentCell(spreadsheet.getRange("A" & a &":A" & b));


Please help.

使用文本查找器

找到第一次出现

function FindRow() {
  const ss = SpreadsheetApp.getActive();
  const r = ss.createTextFinder("Double-Click").matchEntireCell(true).findNext();
  const location = r.getA1Notation();
  const sheet = r.getSheet();
  const row = r.getRow();
  Logger.log('%s!%s row:%s',sheet.getName(),location,row);
  return row;
}

findNext() 返回一个范围

在此处输入图像描述

我认为您出现问题的原因是getRangespreadsheet.getRange.createTextFinder

In my column N, there is only one cell with text - "Double-Clic: How to get the row number of that cell. ,当你想从列 "N" 中搜索Double-Click的值时,请修改如下。

修改脚本:

function FindRow() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var a = sheet.getRange("N1:N" + sheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().getRow();
  return a
}
  • 当你想从第2行开始搜索时,请将"N1:N" + sheet.getLastRow()修改为"N2:N" + sheet.getLastRow()

笔记:

  • createTextFinder方法也存在于 Class Range、Class Sheet、Class Spreadsheet 中。 比如当你想从sheet中查找值时,也可以修改如下。

     function FindRow() { var sheet = SpreadsheetApp.getActiveSheet(); var a = sheet.createTextFinder("Double-Click").matchEntireCell(true).findNext().getRow(); return a }

参考:

添加:

Above issue is resolved. Thank you so much to all those who answered it. Above issue is resolved. Thank you so much to all those who answered it. ,我了解到您的问题已解决。

关于你的新问题But getting error in this last line = Range not found. ,当我看到你的新问题的脚本时,我认为当你要添加字符串时, "A" & a &":A" & b需要修改。 它是"A" + a + ":A" + b

但是,当a的值与b的值不同时,就会发生错误。 因为setCurrentCell可以用于一个单元格。

不幸的是,我不确定我是否能正确理解你的新问题Also, can I add "+1" in the last as I want the next row which has the text "Double-Click"

如果要激活"A" + a + ":A" + b的单元格,请修改如下。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var a = spreadsheet.getRange("N1:N" + spreadsheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().getRow() + 1;
var b = a + 6;
spreadsheet.getRange("A" + a + ":A" + b).activate();

如果要激活搜索单元格下一行的单元格,请修改如下。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
spreadsheet.getRange("N1:N" + spreadsheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().offset(1, 0).activate();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM