首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Google脚本中获取带有特定文本的单元格的行号

如何在Google脚本中获取带有特定文本的单元格的行号
EN

Stack Overflow用户
提问于 2022-02-28 21:49:28
回答 2查看 1.6K关注 0票数 1

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

我代码的一部分有错误:

代码语言:javascript
运行
复制
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.
EN

回答 2

Stack Overflow用户

发布于 2022-02-28 22:18:46

使用Textfinder

查找第一次出现的

代码语言:javascript
运行
复制
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()返回一个范围

票数 1
EN

Stack Overflow用户

发布于 2022-03-01 00:22:38

我认为你的问题的原因是由于getRange of spreadsheet.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的值时,请修改如下。

修改脚本:

代码语言:javascript
运行
复制
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方法也存在于类范围、类表、类电子表格中。例如,当您想从工作表中搜索值时,还可以修改如下。 函数FindRow() { var sheet = SpreadsheetApp.getActiveSheet();var a=SpreadsheetApp.getActiveSheet返回a}

参考资料:

添加:

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的单元格,请按以下方式修改。

代码语言:javascript
运行
复制
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();

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

代码语言:javascript
运行
复制
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
spreadsheet.getRange("N1:N" + spreadsheet.getLastRow()).createTextFinder("Double-Click").matchEntireCell(true).findNext().offset(1, 0).activate();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71301441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档