google-apps-script - 在多个工作表中搜索一个词

标签 google-apps-script google-sheets

大家好
我有一张包含多个工作表/页面的工作表,我想在其中找到存储在单元格中的值。我通过绘图中的图片触发我的脚本。
在下面的示例中,我想搜索单词 Test。使用我的方法,我需要在每个站点上放置一张图片,然后手动搜索每个站点以查找单词。

<表类="s-表"> <头> 单词 编号 其他 <正文> 测试 2 嘿

我已经能够在一页上找到一个值并“显示”它,但我想在其他所有工作表上都这样做。
这是我用来在同一页面上查找内容的代码。

function searchString(){
  var sheet = SpreadsheetApp.getActiveSheet();
  var search_string = sheet.getRange("J22:M23").getValue();
  var textFinder = sheet.createTextFinder(search_string);
  var search_row = textFinder.findNext().getRow();
  var ui = SpreadsheetApp.getUi();
  ui.alert("search row: " + search_row);
}

我希望它显示它所在的页面和它所在的行,但我无法弄清楚。
谢谢你们的帮助

最佳答案

我相信你的目标如下。

  • 您想从 Google 电子表格的所有工作表中搜索文本。
    • var search_string = sheet.getRange("J22:M23").getValue()search_string的值是一个文本。

修改点:

  • 在您的脚本中,使用了 Class Sheet 的 createTextFinder(findText)。在这种情况下,findText 是从工作表中搜索的。为了从 Google 电子表格中的所有工作表中搜索 findText,您可以使用 Class Spreadsheet 的 createTextFinder(findText)

当以上几点反射(reflect)到你的脚本中时,它变成如下。

修改后的脚本:

请按如下方式修改您的脚本。

function searchString(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var search_string = sheet.getRange("J22:M23").getValue();
  var textFinder = ss.createTextFinder(search_string);
  var search_rows = textFinder.findAll().map(r => ({sheetName: r.getSheet().getSheetName(), row: r.getRow()}));
  var ui = SpreadsheetApp.getUi();
  ui.alert("search row: " + JSON.stringify(search_rows));
}
  • 在此修改后的脚本中,作为示例输出值,显示了工作表名称和行号。

引用资料:

关于google-apps-script - 在多个工作表中搜索一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67005296/

相关文章:

javascript - JS : TypeError: Cannot find function keys in object

google-apps-script - 谷歌电子表格中的 getFormUrl() 仅返回最后一个链接表单的 url?

python - 当我尝试将数字附加到 Python 中的列表并将该列表发送到 Google Sheets 列时出现错误 'Invalid values[1][0]: list_value'

xml - 使用ImportXML和XPath从XML提取数据

javascript - 使用脚本将 HTML Web 应用表数据发送回 Google 表格

javascript - 添加要运行的脚本的编辑器,然后删除它们 - 临时编辑器权限

google-apps-script - 使用 DriveApp 访问共享驱动器

javascript - Google Caja appendChild 没有在 Firefox 中更新 form.elements

google-sheets - 使用 Google Sheets 和 ImportXML 从网站获取数据

javascript - 异常 : Range not found. 尝试使用事件单元格放置多个列。 (但是手动输入时有效)