根据 google sheet 中的列自动填充其他列单元格

Auto-populate other column cells based on a column in google sheet

我正在尝试在 google sheet

中自动填充一些值

如果 B 列的值为 'Steel',它应该自动填充 C 列和 D 列中的 'NA'。 另一方面,如果 B 列中的值填充为 'Copper',则 E 和 F 列应变为 'NA'.

我不能使用公式,因为那样我就不能在这些列中输入其他值。例如,当 B 列为 'Steel'.

时,我需要 select E 列和 F 列下拉列表中的值

Expected Result

对于这种情况,您可以实现一个简单的触发器 (onEdit),以便在每次 material 属性 更改时自动填充您的 sheet。你可以这样做:

function onEdit(e) {
  var ss = e.source;
  var sh = ss.getActiveSheet();
  var column = e.range.getColumn();
  var row = e.range.getRow();
  var material = e.value;
  if (column == 2) {
    if (material == "Copper") {
      sh.getRange(row, column+1,1,2).setValue("");
      sh.getRange(row, column+3,1,2).setValue("NA");
    }
    else if (material == "Steel") {
      sh.getRange(row, column+1,1,2).setValue("NA");
      sh.getRange(row, column+3,1,2).setValue("");
    }
  }
}

在此脚本中,我添加了 .setValue("") 以重置没有“NA”的其他字段。

为了测试脚本,我创建了一个简单的复制:

当我将 Material 属性 设置为“钢”时,我得到:

另一方面,当我将 Material 属性 更改为“Copper”时,我得到:

详情请参考Simple Triggers Guide and Event Objects Guide

这样试试:

function onEdit(e) {
  var sh = e.range.getSheet();
  if (sh.getName() == "Sheet Name" && e.range.columnStart == 2) {
    if (e.value == "Copper") {
      sh.getRange(e.range.rowStart, e.range.columnStart + 1, 1, 4).setValues([["", "", "NA", "NA"]]);
    }
    else if (e.value == "Steel") {
      sh.getRange(e.range.rowStart, e.range.columnStart + 1, 1, 4).setValues([["NA", "NA", "", ""]]);
    }
  }
}