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

如何使用Google Apps Script在Google Sheets中设置特定单元格值及实现城市代码自动填充

我来帮你一步步搞定这两个Google Apps Script相关的问题:

1. 如何用Google Apps Script给Google Sheets特定单元格设置值?

核心就是利用Range.setValue()(单个单元格)或Range.setValues()(批量单元格)方法,我给你几个实用的示例:

单个单元格赋值

比如要把A1单元格设为"测试内容":

function setSingleCellValue() {
  // 获取当前打开的表格
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 定位到A1单元格
  const targetCell = sheet.getRange("A1");
  // 设置单元格值
  targetCell.setValue("测试内容");
}

批量设置多单元格值

如果要一次性给A1:B2区域赋值,用setValues()效率更高(参数是对应行列的二维数组):

function setMultipleCellsValue() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const targetRange = sheet.getRange("A1:B2");
  // 二维数组结构:每一个子数组对应一行,子数组里的元素对应列
  const values = [
    ["城市名称", "代码"],
    ["纽约", "NY"]
  ];
  targetRange.setValues(values);
}

用行号列号定位单元格

除了用"A1"这种地址,还可以直接用行号+列号定位,比如定位第2行第3列(也就是C2单元格):

const targetCell = sheet.getRange(2, 3);
targetCell.setValue("TK");
2. 选中/编辑A列城市名时自动填充对应代码到B列

这个需求可以用onEdit简单触发器实现,它会在表格被编辑时自动触发,具体步骤如下:

第一步:定义城市-代码映射表

先在脚本里把你的城市和对应代码对应起来,比如:

// 这里可以根据你的业务需求添加更多城市和代码
const cityCodeMap = {
  "纽约": "NY",
  "东京": "TK",
  "德里": "DL",
};

第二步:编写自动填充的触发函数

把下面的代码粘贴到Google Sheets的脚本编辑器中:

function onEdit(e) {
  // 获取编辑事件的基础信息
  const editedRange = e.range;
  const editedSheet = editedRange.getSheet();
  const editedColumn = editedRange.getColumn();
  const editedRow = editedRange.getRow();
  
  // 只处理A列(第1列)的编辑,且跳过表头行(假设表头在第1行)
  if (editedColumn === 1 && editedRow > 1) {
    const cityName = editedRange.getValue().trim(); // 去除城市名首尾空格,避免匹配错误
    const codeCell = editedSheet.getRange(editedRow, 2); // 对应行的B列(第2列)
    
    // 根据城市名匹配代码,没有匹配项就清空B列
    if (cityCodeMap[cityName]) {
      codeCell.setValue(cityCodeMap[cityName]);
    } else {
      codeCell.clearContent();
    }
  }
}

第三步:设置和测试

  1. 打开你的Google Sheets,点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑器
  2. 把默认的myFunction()替换成上面的代码,补充完整cityCodeMap里的城市和代码
  3. 点击保存,给脚本起个名字(比如"AutoFillCityCode"),首次运行会要求授权,按照提示完成即可
  4. 回到表格,在A列第2行及以下输入你定义好的城市名,对应的B列就会自动填充代码啦!

小提示

  • 如果你的表头不在第1行,记得把editedRow > 1改成对应的行号(比如表头在第2行就改成editedRow > 2)
  • 要是需要忽略大小写匹配,可以把cityName转成小写,同时把映射表的键也改成小写,比如cityName.toLowerCase()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:17:34