请帮我做增量功能

问题描述

我有这个公式 {=concatenate(getNotes(CELL("address",B2)&":"&CELL("address",AE2)))}获取表单响应电子表格中某个范围的注释。现在我遇到了第一个问题,因为它是一个表单响应表,我无法在开始时添加公式,因为每个响应都会插入行,而我无法添加 arrayformula,因为 arrayformula 不能与连接一起使用。

所以我需要一个脚本,每次提交响应时都会在 AG 列中添加这个公式。我可以为此编写脚本,但我发现每一行都有一个增量问题。每次提交响应时,脚本的范围都必须增加 1。就像 A2 行公式应该高于 1,A3 行公式应该是 {=concatenate(getNotes(CELL("address",B3)&":"&CELL("address",AE3)))} 等等。那么我该怎么做呢?

我的代码

function addFormula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Expense Voucher Uploading Responses");
var getFormula = sheet.getRange(3,33,sheet.getLastRow()-2)
sheet.getRange("AG2").copyTo(cell);
}

我得到了第二个代码,但我认为这并不完美。

function addFormula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Expense Voucher Uploading Responses");
var data = sheet.getRange(919,1,sheet.getLastRow()-1,33).getValues();
for (var i = 0; i < data.length; ++i){
    var row = data[i]
    var timestamp = row[0];
var formulaC = row[32];
if(timestamp !== '' && formulaC === '') {
  var formula = `=concatenate(getNotes(CELL("address",B${sheet.getLastRow()})&":"&CELL("address",AE${sheet.getLastRow()})))`
sheet.getRange(i+919,33).setValue(formula);
}
}}

我可以在表单提交时为此代码添加触发器,但如果出现任何问题,则 getLastRow() 可能会导致错误。所以如果有人有更好的,请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)