You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Sheets中创建搜索、新建记录按钮及相关功能需求

Google Sheets 搜索与按钮功能实现步骤

一、实现Search按钮(ID搜索+跳转+查找下一个)

1. 编写脚本代码

打开你的Google Sheets文档,点击顶部菜单栏「扩展」>「Apps脚本」,在脚本编辑器中替换原有代码为以下内容:

// 全局变量:记录当前搜索的工作表索引和行号,用于支持「查找下一个」
let currentSheetIndex = 0;
let currentRow = 0;

function searchID() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const searchSheet = ss.getSheetByName("Search");
  const targetID = searchSheet.getRange("E3").getValue().toString().trim();
  
  // 检查是否输入了ID
  if (!targetID) {
    SpreadsheetApp.getUi().alert("请输入要搜索的ID编号");
    return;
  }

  // 获取除Search外的所有标签页
  const allSheets = ss.getSheets();
  const targetSheets = allSheets.slice(1);

  // 首次搜索时重置起始位置
  if (currentSheetIndex === 0 && currentRow === 0) {
    currentSheetIndex = 0;
    currentRow = 1;
  }

  let isFound = false;
  // 遍历目标标签页
  for (let i = currentSheetIndex; i < targetSheets.length; i++) {
    const sheet = targetSheets[i];
    const colAData = sheet.getRange("A:A").getValues().flat(); // 提取A列所有数据
    
    // 从当前记录的行号开始查找
    for (let j = currentRow - 1; j < colAData.length; j++) {
      if (colAData[j].toString().trim() === targetID) {
        // 跳转至匹配行的A列单元格
        sheet.setActiveRange(sheet.getRange(j + 1, 1));
        // 更新搜索位置,供下一次查找使用
        currentSheetIndex = i;
        currentRow = j + 2; // 下一次从当前行的下一行开始
        isFound = true;
        return;
      }
    }
    // 当前标签页查找完毕,重置行号继续下一个标签页
    currentRow = 1;
  }

  // 未找到匹配记录
  if (!isFound) {
    SpreadsheetApp.getUi().alert("未找到匹配的ID编号");
    // 重置搜索位置
    currentSheetIndex = 0;
    currentRow = 0;
  }
}

点击脚本编辑器顶部的「保存」按钮,给项目命名(比如SheetSearchTools)。

2. 绑定按钮与脚本

回到Google Sheets的「Search」标签页,点击「插入」>「绘图」,绘制一个名为「Search」的按钮(可自定义样式)。绘制完成后,右键点击按钮>「指定脚本」,输入searchID并确认。

二、实现New Record按钮(跳转至Register空白行)

1. 添加脚本函数

在刚才的Apps脚本编辑器中,继续添加以下函数:

function goToNewRecord() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const registerSheet = ss.getSheetByName("Register");
  // 找到Register标签页A列最后一行有数据的行,下一行即为空白行
  const lastDataRow = registerSheet.getLastRow();
  const newRecordRow = lastDataRow + 1;
  // 跳转至空白行的A列单元格
  registerSheet.setActiveRange(registerSheet.getRange(newRecordRow, 1));
}

再次点击「保存」。

2. 绑定按钮与脚本

回到「Search」标签页,插入新的绘图按钮命名为「New Record」,右键点击按钮>「指定脚本」,输入goToNewRecord并确认。

三、移除Clear按钮的脚本运行提示

你可以通过录制内置宏替代原有脚本,避免授权提示:

  1. 点击顶部菜单栏「扩展」>「宏」>「录制宏」;
  2. 选中「Search」标签页的E3单元格,按Delete键清除内容;
  3. 点击「保存宏」,命名为ClearSearch;
  4. 右键点击已有的「Clear」按钮>「指定脚本」,输入ClearSearch并确认。

之后点击Clear按钮就不会再弹出脚本运行提示了。


内容的提问来源于stack exchange,提问作者Debbie Verras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:25:32