Google Script开发:Sheet1选A列单元格跳转Sheet2高亮匹配项
Google Sheets 宏实现:跨工作表匹配高亮跳转
完整宏代码
打开Google表格的脚本编辑器(工具 > 脚本编辑器),替换原有代码为以下内容:
function goToList() { // 获取当前选中的单元格 const activeCell = SpreadsheetApp.getActiveSpreadsheet().getActiveCell(); const sheet1 = activeCell.getSheet(); // 校验是否选中Sheet1的A列单元格 if (sheet1.getName() !== "Sheet1" || activeCell.getColumn() !== 1) { SpreadsheetApp.getUi().alert("请选中Sheet1的A列单元格后重试!"); return; } const targetValue = activeCell.getValue(); if (!targetValue) { SpreadsheetApp.getUi().alert("选中的单元格不能为空!"); return; } // 切换到Sheet2并搜索匹配值 const sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2"); const dataRange = sheet2.getRange("A:A"); const values = dataRange.getValues(); // 遍历查找匹配项 let matchRow = -1; for (let i = 0; i < values.length; i++) { if (values[i][0] === targetValue) { matchRow = i + 1; // 转换为表格行号(从1开始) break; } } if (matchRow === -1) { SpreadsheetApp.getUi().alert("Sheet2中未找到匹配值!"); return; } // 清除Sheet2原有高亮样式 sheet2.getRange(1, 1, sheet2.getLastRow(), sheet2.getLastColumn()).setBackground(null); // 高亮匹配整行并定位 const targetRow = sheet2.getRange(matchRow, 1, 1, sheet2.getLastColumn()); targetRow.setBackground("#ffff99"); // 浅黄色高亮,可自行替换颜色代码 sheet2.setActiveRange(targetRow); SpreadsheetApp.setActiveSheet(sheet2); }
配置步骤
- 保存脚本,命名为
GoToListMacro(或任意名称) - 返回表格,插入按钮:插入 > 绘图,绘制一个按钮并添加文本「Go To List」
- 右键点击按钮,选择「分配脚本」,输入
goToList(与函数名一致)
自定义说明
- 若只需高亮匹配单元格而非整行,将
targetRow的范围改为sheet2.getRange(matchRow, 1)即可 - 高亮颜色可通过修改
setBackground的参数调整,比如#ffcccc为浅红色 - 脚本已包含校验逻辑:仅允许选中Sheet1的A列单元格,空值、无匹配项时会弹出提示
内容的提问来源于stack exchange,提问作者Imtiaz Public
相关产品推荐
相关产品推荐

