返回

Google Apps Script:为 Google Sheets 单元格设置初始值和限制,提升效率

javascript

设置初始值和单元格限制

问题:

在处理电子表格时,常常需要确保特定单元格包含初始值或符合特定限制。手动输入这些值既费时又容易出错。

解决方案:

借助 Google Apps Script,我们可以创建自动脚本,设置初始值并应用单元格限制。

初始值设置脚本:

function setInitialValues() {
  // 获取工作表对象
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Micro FG");
  // 获取最后一行
  var lastRow = sheet.getLastRow();
  // 存储需要设置的数据
  var dataToSet = [];

  // 遍历每一行
  for (var i = 2; i <= lastRow; i++) {
    // 获取单元格对象
    var cellA = sheet.getRange("A" + i);
    var cellJ = sheet.getRange("J" + i);
    var cellK = sheet.getRange("K" + i);
    var cellL = sheet.getRange("L" + i);
    var cellM = sheet.getRange("M" + i);
    var cellN = sheet.getRange("N" + i);

    // 检查单元格 A 是否为空
    if (cellA.getValue() != "") {
      // 检查单元格 J-N 是否为空,并添加需要设置的数据
      if (cellJ.getValue() == "") dataToSet.push(["Initial Value 10"]);
      if (cellK.getValue() == "") dataToSet.push(["Initial Value 11"]);
      if (cellL.getValue() == "") dataToSet.push(["Initial Value 12"]);
      if (cellM.getValue() == "") dataToSet.push(["Initial Value 13"]);
      if (cellN.getValue() == "") dataToSet.push(["Initial Value 14"]);
    }
  }

  // 如果有需要设置的数据
  if (dataToSet.length > 0) {
    // 获取需要设置的数据范围
    var rangeToSet = sheet.getRange(2, 10, dataToSet.length, 1);
    // 设置数据
    rangeToSet.setValues(dataToSet);
  }
}

单元格限制脚本:

function onEditTrigger(e) {
  // 获取编辑的单元格范围
  var editedRange = e.range;
  // 获取工作表对象
  var sheet = editedRange.getSheet();
  // 获取列和行号
  var column = editedRange.getColumn();
  var row = editedRange.getRow();

  // 如果编辑了列 A 中的行 1 以下
  if (column == 1 && row > 1) {
    // 触发初始值设置函数
    setInitialValues();
  }

  // 如果编辑了列 J-N 中的行 1 以下
  if ((column >= 10 && column <= 14) && row > 1) {
    // 获取单元格 A
    var cellA = sheet.getRange("A" + row);

    // 如果单元格 A 为空,清空被编辑的单元格
    if (cellA.getValue() == "") {
      sheet.getRange(row, column).setValue("");
    }
  }
}

使用说明:

  1. 在 Google Sheets 中复制上述脚本。
  2. 导航至 工具 > 项目脚本
  3. 粘贴脚本并保存。
  4. 授权脚本访问您的电子表格。
  5. 当编辑列 A 中的行或列 J-N 中的行时,脚本将自动触发。

常见问题解答:

  1. 如何修改初始值?
    修改脚本中 ["Initial Value 10"] 等语句中的文本。

  2. 如何添加其他单元格限制?
    onEditTrigger 函数中,添加新的 if 语句来检查其他列和条件。

  3. 如何移除脚本?
    导航至 工具 > 项目脚本 ,删除脚本并保存。

  4. 为什么我的脚本不起作用?
    检查您的脚本是否正确授权访问您的电子表格。

  5. 我的单元格限制有例外吗?
    是的,您可以使用条件语句在脚本中添加例外。