如何修复行数不匹配



我正在寻找帮助来修复错误:

数据中的行数与范围内的行数不匹配


var s = SpreadSheetApp.getActive().getActiveSheet();
var file1 = SpreadSheetApp.openById(DriveApp.getFilesByName("test1").next().getId()); // 6000 rows
var file2 = SpreadSheetApp.openById(DriveApp.getFilesByName("test2").next().getId()); // 4000 rows
var file2 = SpreadSheetApp.openById(DriveApp.getFilesByName("test2").next().getId()); // 7000 rows
var files = [file1,file2,file3];
var lastRow = 1;
for (var i = 0; i<=files.length;i++){
var rangeSource = files[i].getRange("A:AZ").getValues();
s.getRange("A"+lastRow+":AZ").setValues(rangeSource);
lastRow = s.getLastRow();
} 

我知道行数不匹配,但我正在寻找一个技巧来避免这个错误,不在源数据中插入行,也不在当前工作表的第一个单元格中使用IMPORTRANGE公式。

如果有人能解决这种类型的错误,那将是非常好和有用的!

我已经搜索过这样的问题,但我仍然不明白,给出的例子对我来说太复杂了,因为我是编码新手。

真诚!

BigBenne

function myfunc() {
const tsh = SpreadsheetApp.getActiveSheet();
var file1 = DriveApp.getFilesByName("test1").next().getId(); // 6000 rows
var file2 = DriveApp.getFilesByName("test2").next().getId(); // 4000 rows
var file3 = DriveApp.getFilesByName("test3").next().getId(); // 7000 rows
var files = [file1, file2, file3];
var lastRow = 1;
files.forEach(id=>{
let ss = SpreadsheetApp.openById(id);
let sh = ss.getSheets()[0];
let vs = sh.getRange(1,1,sh.getLastRow(),26).getValues();
tsh.getRange(tsh.getLastRow() + 1,1,vs.length,vs[0].length).setValues(vs);
});
}

最新更新