Google Sheets/Google Apps Script 基于激活单元格获取其他单元格值的方法
Google Sheets/Google Apps Script 实现方案
一、内置公式实现(无需脚本)
如果不需要实时响应选中单元格的变化,直接使用表格自带函数即可实现需求:
- 获取当前激活单元格同行C列的值:
=INDIRECT("C"&CELL("row")) - 获取当前激活单元格同列第3行的值:
=INDEX(3:3,CELL("col"))
注意:该方案的计算结果不会随着你选中单元格自动刷新,需要按下回车或者有单元格内容更新时才会同步最新选中单元格的计算结果
二、Google Apps Script 实现(支持实时响应选中变化)
该方案可以实现你每次切换选中的单元格,自动计算对应值,操作步骤如下:
- 打开目标Google表格,点击顶部菜单栏「扩展程序」→「Apps Script」打开脚本编辑器
- 清空编辑器内默认的示例代码,粘贴如下代码:
// 选中单元格变化时自动触发的内置触发器 function onSelectionChange(e) { const activeCell = e.range; // 计算同行C列的单元格值 const sameRowCValue = activeCell.offset(0, 3 - activeCell.getColumn()).getValue(); // 计算同列第3行的单元格值 const sameColRow3Value = activeCell.offset(3 - activeCell.getRow(), 0).getValue(); // 以下为自定义使用逻辑,可按需修改 // 示例:将两个结果写入当前工作表的A1、B1单元格展示 const currentSheet = activeCell.getSheet(); currentSheet.getRange("A1").setValue("同行C列值:" + sameRowCValue); currentSheet.getRange("B1").setValue("同列第3行值:" + sameColRow3Value); // 如需在脚本控制台查看结果,可取消下方注释 // console.log("同行C列值:", sameRowCValue); // console.log("同列第3行值:", sameColRow3Value); }
- 点击项目名称任意命名后保存代码,直接关闭脚本编辑器回到表格即可使用
逻辑说明
- 代码使用Google Apps Script内置的
onSelectionChange简单触发器,无需额外部署授权即可运行 - 使用
offset(行偏移量, 列偏移量)方法定位目标单元格,比手动拼接单元格地址更稳定不容易出错 - 如果你只需要在指定工作表生效,可以在逻辑开头增加工作表名称判断:
if(activeCell.getSheet().getName() !== "你指定的工作表名称") return;
内容的提问来源于stack exchange,提问作者Chino
相关产品推荐
相关产品推荐

