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

Google Apps Script如何引用同一工作簿其他工作表中的值?

Google Apps Script 同工作簿跨表取值方法

你可以直接通过SpreadsheetApp内置服务读取同工作簿下其他工作表的内容,补全变量映射逻辑,分两种常见场景处理:

  • 固定配置场景:insertion_order_number、month为全局固定值,存放在某张工作表的固定单元格
  • 匹配映射场景:两个字段按维度(如客户、广告主)分行存储,需要和本次表单提交的字段匹配后取对应值

固定配置场景实现代码

如果两个值是固定配置项(例如存放在名为「系统配置」的工作表A2、B2单元格),直接读取指定单元格值即可:

// 获取当前表单绑定的工作簿对象
const activeSpreadsheet = e.source;
// 替换为你存放配置字段的实际工作表名称
const configSheet = activeSpreadsheet.getSheetByName("系统配置");

//e.values is an array of form values
var timestamp = e.values[0];
var client = e.values[1];
var advertiser = e.values[2];
var total_spend_amount = e.values[3];
var campaign_start_date = e.values[4];
// 替换为两个字段实际所在的单元格位置
var insertion_order_number = configSheet.getRange("A2").getValue();
var month = configSheet.getRange("B2").getValue();

匹配映射场景实现代码

如果两个值需要和本次提交的客户、广告主等信息匹配后取值,先读取目标表全量数据再遍历匹配即可:

const activeSpreadsheet = e.source;
// 替换为存放映射字段的实际工作表名称
const mappingSheet = activeSpreadsheet.getSheetByName("订单映射表");
// 读取该工作表所有有效数据,返回二维数组,行、列索引均从0开始计数
const mappingData = mappingSheet.getDataRange().getValues();

//e.values is an array of form values
var timestamp = e.values[0];
var client = e.values[1];
var advertiser = e.values[2];
var total_spend_amount = e.values[3];
var campaign_start_date = e.values[4];
var insertion_order_number = "";
var month = "";

// 遍历映射表数据匹配对应值,从索引1开始跳过表头行
for (let rowIndex = 1; rowIndex < mappingData.length; rowIndex++) {
  const currentRowClient = mappingData[rowIndex][0]; // 示例:映射表第1列存client名称,按实际列位置修改
  if (currentRowClient === client) {
    insertion_order_number = mappingData[rowIndex][1]; // 示例:映射表第2列存订单号,按实际列位置修改
    month = mappingData[rowIndex][2]; // 示例:映射表第3列存月份,按实际列位置修改
    break; // 匹配到目标行后终止循环
  }
}

注意:使用时需要把代码中的工作表名称、单元格位置、列索引替换为你自己表格中的实际配置,列索引从0开始计数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:09:10