我在Google表格中创建了一个任务管理器,当创建任务时,它会将刚刚发送给目标工作表的任务发送给我,我能够让它将数据发送到目标工作表,但是我的问题在于我想对目标表上的编辑做些什么。在目标表上,我希望它获取刚刚输入的信息并将其放在下一个可用行中,但是当我测试我的代码时它不能正常工作。
我的代码(针对目标表):
function onEdit (e) {
var ss = SpreadsheetApp.openById('SheetIdHere');
var sheet = ss.getSheets()[0];
var sheetRows = sheet.getMaxRows();
var openRow = 0;
for (var i =4;i < sheetRows;i++) {
var currentValue = sheet.getRange(i,2).getValue();
if (currentValue == "") {
openRow = i;
break;
}
}
var lastEdit = sheet.getRange(1000, 2, 1, 3);
var lastEditValues = lastEdit.getValues();
var openRange = sheet.getRange(openRow, 2, 1, 3);
var openA1 = openRange.getA1Notation();
sheet.getRange(openA1).setValues(lastEditValues);
}
到目前为止,我的测试中找到下一个可用行的for
循环工作正常,因为当我在工作表上进行另一次更改后,它将获取编辑后的信息并将其输入下一行,但是在最初的onEdit
触发时,它只会抓取第1000行上一次测试的值并将其放入下一行而不是新值。
我觉得在抓取价值时可能会出现错误,因为如果我清理工作表并发送新任务,则下一个可用行上没有任何内容,但我可能会误认为这种感觉。