如果条目使用相同的 ID,则需要提交带有后缀的数据。例如如果身份证号001 再次提交,数据必须保存为'001/Rev'

If the entry is made with the same ID, data need to be submitted with suffix. For e.g. if ID no. 001 is submitted again, data must saved as '001/Rev'

我正在使用 sheet 上的复选框来触发脚本,以便将下拉列表中的数据保存到相邻的 sheet。要求是如果条目是用相同的 SRF 号码完成的,那么它需要用后缀保存。 对于例如如果再次提交 SRF No 'AS/SRF-004',则应保存为 'AS/SRF-004/Rev',如果再次重复,则 'AS/SRF-004/Rev-2' 依此类推。

不知道我问这个问题是否可行或愚蠢。

当我看到您提供的 Spreadsheet 时,我找到了您当前的脚本。尽管这隐藏在您的问题中,但我认为您可能想要使用此脚本。所以在这个回答中,我想建议修改你当前的脚本。

从你的问题和回复中,我了解到你的目标如下。

  • 设置“C6”和“C8”的值并在“SRF Allotment”中选中复选框后sheet,您想将值放入列“A”和“B” “Helper(Assign Status-from down)”sheet。这时,你想查看“A”列中“C6”的值个数,将/REV-#的值作为后缀。
  • 您想通过修改当前脚本来实现。

如果我对你的目标的理解是正确的,下面的修改怎么样?

修改后的脚本:

function onEdit(e) {
  var sh1 = e.source.getActiveSheet();
  var r = e.range;
  if (sh1.getName() == 'SRF Allotment' && r.getA1Notation() == 'C9' && r.getValue() === true) {
    var sh2 = e.source.getSheetByName('Helper(Assign Status-from down)');
    var v = r.offset(-3, 0).getValue();
    var n = sh2.getRange("A2:A" + sh2.getLastRow()).createTextFinder(v).matchEntireCell(true).findAll().length;
    var values = [v, r.offset(-1, 0).getValue(), null, null, `${v}/REV-${n + 1}`];
    sh2.appendRow(values);
    r.uncheck();
    e.source.getSheetByName('SRF Allotment').getRangeList(["C6", "C8"]).clearContent();
  }
}
  • 在此修改中,“SRF Allotment”sheet 的“C6”的值是从 Helper(Assign Status-from down) 的“A”列中搜索的。使用此结果,添加后缀,如 ${v}/REV-${n + 1}。我使用 TextFinder 搜索值。

注:

  • 在你的问题中,你似乎想使用AS/SRF-004/Rev-2。另一方面,在您的回复中,您似乎想使用 AS/SRF-004/RevAS/SRF-001/REV-01。从这种情况来看,我无法理解你的实际后缀。所以我用了${v}/REV-${n + 1}。如果这不是您的预期结果,请将其修改为您的预期结果。

参考: