我是新手,所以仍然试图弄清楚一切是如何运作的。
我有一张工作表可以收集Google表单的回复。基于其中一个问题的答案,我希望该表中的行能够一起移动到不同的工作表文档(而不是同一文档中的工作表)。
我让它每分钟设置一个基于时间的触发器,以便新的响应进入它会将它们踢到正确的文档,然后从原始电子表格中删除该行。
我能够在那里获得部分路线。我希望它采取行,A到E列,将它们移动到正确的文档,找到下一个打开行的位置,并将数据放在新文档的A到E列中。
此时我的问题是将行移动到新文档的位置。我在目标页面上的列G-Z中保存了公式。它正在找到带有公式的最后一行并在该行之后放置该行(位于页面的最底部)。我很确定这与使用数组有关吗?但我可能错了。有没有办法只查看目标页面列A-E,找到下一个空白行,并将A-E从原始文件复制到新页面?
arr = [],
values = sheetOrg.getDataRange().getValues(),
i = values.length;
while (--i) {
if (value1ToWatch.indexOf(values[i][1]) > -1) {
arr.unshift(values[i])
sheetOrg.deleteRow(i + 1)
sheet1in.getRange(sheet1in.getLastRow()+1, 1, arr.length, arr[0].length).setValues(arr);
};
我有多个If语句,每个语句都对“valueToWatch”和“Sheet1in”进行了一些更改,用于不同的值和目标页面。如果这些信息有帮助的话。
答案 0 :(得分:0)
您可以在列中找到包含数据的最后一个单元格:
function findLastValueInColumn() {
var column = "A"; // change to whatever column you want to check
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var lastDataRow = sheet.getDataRange().getLastRow();
for (var currentRow = lastDataRow; currentRow > 0; currentRow--) {
var cellName = column + currentRow;
var cellval = sheet.getRange( cellName ).getValue();
if (cellval != "") {
Logger.log("Last value in Column " + column + " is in cell " + currentRow);
break;
}
}
}
然后,您可以使用此功能找出启动新数据的位置。