需要将表单响应表“ EFS”中的数据复制到“ QE”表中。目标工作表的范围不是从A列的第1行开始,而是应该从第3列的C列开始。因为这是活动形式,所以在创建新条目时需要将该条目复制到表格的最后一行。目的地清单“ QE”这就是到目前为止。出现错误
数据中的行数与范围中的行数不匹配。数据有26751,但范围有20。(第15行,文件“ QETaskList”)
我尝试更改范围,但出现其他错误。
function CopyGradesToQETaskList() {
var sss = SpreadsheetApp.openById("1PK-nMvqIoXaL1nrYPRIWr72I5IQ3wd9sjeztMtR9J1M");
var ss = sss.getSheetByName('EFS');
var lastRowSource = ss.getLastRow();
var source = sss.getRange("A2:p2" + lastRowSource);
values = source.getValues();
var TargetSource = SpreadsheetApp.getActiveSpreadsheet();
var TargetSheet = TargetSource.getSheetByName('QE');
var last_row = TargetSheet.getLastRow();
TargetSheet.insertRowAfter(last_row)
var tsRange = TargetSheet.getRange("C2:R2"+last_row);
tsRange.setValues(values);
}
答案 0 :(得分:0)
尝试一下:
function CopyGradesToQETaskList() {
var ss=SpreadsheetApp.openById("SSID");
var sh=ss.getSheetByName('EFS');
var src=sh.getRange(sh.getLastRow(),1,1,16);
var vA=src.getValues();
var tss=SpreadsheetApp.getActive();
var tsh=tss.getSheetByName('QE');
var trg=tsh.getRange(tsh.getLastRow()+1,3,1,16);
trg.setValues(vA);
}
答案 1 :(得分:0)
部分问题是lastRowSource
和last_row
的值不同。
另一个问题是表达式"A2:p2" + lastRowSource
和"C2:R2"+last_row
错误
假设两个工作表的行数相同。问题在于,如果两张纸上的最后一行都在10,则上述表达式的结果分别是A2:p210
和C2:R210
,而您很可能期望A2:p10
和{{1} }。