google-apps-script - 请帮助我使用增量功能
问题描述
我有这个公式{=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() 可能会导致错误。因此,如果有人有更好的,请帮助。
解决方案
推荐阅读
- spring-boot - 使用 Feign 客户端调用 3rd 方 API 抛出无法从 START_OBJECT 令牌中反序列化 `java.util.ArrayList` 的实例
- r - 由于本地 rstudio 和 r ui 中的特定日语字符而无法绘制绘图,但使用 plotly 在 rstudio.cloud 中没有问题
- c++ - 它如何返回布尔结果?
- python - 查找形状文件中的所有相交多边形
- python - 无法在不返回 ValueError 的情况下 fit() Scikit-Learn 管道
- python-3.x - 连续硬币计数
- dafny - 如何使用“存在”量词?
- java - 错误:不兼容的类型:int 无法转换为 int[] 和其他错误
- python - 为什么在元组中使用 key ?以及这里的语法是什么
- jquery - 如何在单击图像链接时显示工具提示