如何实现Google Sheets复制内容后自动高亮相同数据?
Google Sheets 自动高亮复制内容匹配项脚本
在Google Sheets中,常规查找重复数据的方式是复制内容后按Ctrl+F调出查找框粘贴定位。以下脚本可实现复制内容后自动高亮表格中所有匹配数据的功能:
实现步骤
- 打开目标Google Sheets文档,点击菜单栏的「工具」→「脚本编辑器」。
- 删除默认的
Code.gs内容,替换为以下脚本:
// 存储之前高亮的单元格范围,用于重置 let previousRange = null; function onOpen() { // 添加自定义菜单,方便重置高亮 SpreadsheetApp.getUi().createMenu('高亮工具') .addItem('重置高亮', 'clearHighlight') .addToUi(); } function onCopy(e) { // 获取复制的内容 const copiedValue = e.value; if (!copiedValue) return; // 先清除之前的高亮 clearHighlight(); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getDataRange(); const values = dataRange.getValues(); const backgrounds = dataRange.getBackgrounds(); // 遍历所有单元格,匹配内容则设置高亮背景 for (let i = 0; i < values.length; i++) { for (let j = 0; j < values[i].length; j++) { if (values[i][j] === copiedValue) { backgrounds[i][j] = '#ffff00'; // 黄色高亮,可自定义颜色代码 // 记录高亮单元格范围 const currentCell = sheet.getRange(i+1, j+1); previousRange = previousRange ? previousRange.union(currentCell) : currentCell; } } } // 应用背景色修改 dataRange.setBackgrounds(backgrounds); } function clearHighlight() { if (previousRange) { previousRange.setBackground(null); previousRange = null; } }
功能说明
- 脚本通过
onCopy触发器监听复制操作,获取复制内容后自动遍历当前工作表所有单元格,将匹配项设置为黄色高亮(可修改#ffff00更换高亮颜色)。 - 自定义菜单「高亮工具」提供「重置高亮」选项,可一键清除所有高亮效果。
- 首次运行需授权脚本访问权限,按页面提示完成授权即可。
使用方法
- 保存脚本后刷新Google Sheets文档,菜单栏会出现「高亮工具」选项。
- 复制任意单元格内容,表格中所有相同内容的单元格会自动高亮。
- 如需清除高亮,点击「高亮工具」→「重置高亮」即可。
内容的提问来源于stack exchange,提问作者Sanjay Devani
相关产品推荐
相关产品推荐

