Google Apps Script:copyTo参数不匹配报错,需复制行至表格底部
问题解决方法
错误原因
你代码里的destination.appendRow是Sheet类的方法,但copyTo()要求传入的参数必须是Range对象,参数类型不匹配就触发了报错。
修正后的代码
要实现把指定行追加到目标表底部,需要先定位目标表的下一个空行,再创建对应的目标Range,之后执行复制操作:
function testmoveContact() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Form"); var destination = ss.getSheetByName("Sheet2"); // 获取目标表最后一行的下一行行号 var nextRow = destination.getLastRow() + 1; // 创建对应A到G列的目标Range(和源数据列数一致) var targetRange = destination.getRange(nextRow, 1, 1, 7); // 执行复制,仅复制内容 sheet.getRange("A2:G2").copyTo(targetRange, {contentsOnly: true}); }
关键说明
getLastRow():获取目标表已有数据的最后一行行号,加1就是新数据要插入的位置getRange(nextRow, 1, 1, 7):参数依次为起始行、起始列、行数、列数,这里对应1行7列的范围(A到G列)- 修正后传入
copyTo()的是合法的Range对象,匹配方法签名,就能正常完成复制
内容的提问来源于stack exchange,提问作者horsefish
相关产品推荐
相关产品推荐

