如何在Google Spreadsheet中让Sheet1单元格背景色同步Sheet2同位置单元格
Google Sheets 跨工作表单元格背景色同步实现方案
Google Sheets 本身没有提供原生的格式同步函数,你可以通过内置的 Apps Script 实现需求,操作步骤如下:
操作步骤
- 打开目标Google工作簿,点击顶部菜单栏的「扩展程序」→「Apps Script」打开脚本编辑器
- 清空编辑器内默认的示例代码,粘贴如下代码:
function syncA1BackgroundColor() { const workbook = SpreadsheetApp.getActiveSpreadsheet(); // 获取源单元格(Sheet2 A1)的背景色 const sourceColor = workbook.getSheetByName('Sheet2').getRange('A1').getBackground(); // 给目标单元格(Sheet1 A1)设置相同背景色 workbook.getSheetByName('Sheet1').getRange('A1').setBackground(sourceColor); }
- 点击编辑器顶部的保存按钮,给项目自定义命名(例如「背景色同步工具」),按照页面提示完成账号权限验证即可。
- 配置自动触发规则:
- 点击脚本编辑器左侧的闹钟形状的「触发器」图标
- 点击右下角「添加触发器」按钮
- 运行函数选择
syncA1BackgroundColor - 事件来源选择「电子表格」
- 事件类型选择「更改」
- 保存配置即可
效果说明
配置完成后,只要你修改了Sheet2 A1的背景色,刷新Sheet1页面即可看到A1背景色自动同步完成,无需手动操作。
如果需要同步其他单元格范围,只需要修改代码中getRange()的参数即可,例如同步Sheet2 A1:C3范围到Sheet1对应位置的代码如下:
function syncRangeBackgroundColor() { const workbook = SpreadsheetApp.getActiveSpreadsheet(); const sourceRange = workbook.getSheetByName('Sheet2').getRange('A1:C3'); const targetRange = workbook.getSheetByName('Sheet1').getRange('A1:C3'); // 批量获取/设置背景色 targetRange.setBackgrounds(sourceRange.getBackgrounds()); }
内容的提问来源于stack exchange,提问作者Vanny
相关产品推荐
相关产品推荐

