我一直在编写一个脚本,根据B列中的答案将一行移动到另一个工作表。我认为我在那里的大多数方式,因为它确实移动行,但我有一些纠结,可以使用一些建议。
以下是我正在运行的代码的精简版本:(我删除了一些网址 和其他" valueToWatch"变量和其他" ts"表格等等,这样您就不必对长代码进行排序。 ):
function myFunction() {
var ss = SpreadsheetApp.openById('1sYuI'),
sheetOrg = ss.getSheetByName("Form Responses 1");
var value1ToWatch = "ANDERSON";
var value2ToWatch = "BARNES";
var ts1 = SpreadsheetApp.openById('1Ppms');
sheet1in = ts1.getSheetByName("Sheet1");
var ts2 = SpreadsheetApp.openById('1BY8YOQ');
sheet2in = ts2.getSheetByName("Sheet1");
var 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 (value2ToWatch.indexOf(values[i][1]) > -1) {
arr.unshift(values[i])
sheetOrg.deleteRow(i + 1)
sheet2in.getRange(sheet2in.getLastRow()+1, 1, arr.length, arr[0].length).setValues(arr);
};
}
}
我遇到的一个问题是,即使它正在传输数据,我也会收到此失败通知。
TypeError:无法读取属性"长度"来自undefined。 (第41行,文件"代码")