Google Apps Script问题:指定范围数据复制至同表空行
解决Google Apps Script复制数据到指定表格下一行的问题
你的核心问题是没精准定位到目标表格的下一个空行,且没指定正确的粘贴起始列。下面是修正后的代码,完全匹配你的需求:
function CopyData() { const sheet = SpreadsheetApp.getActiveSheet(); // 获取源数据范围(单行输入区域) const sourceRange = sheet.getRange("SkráStarfsmann"); const sourceValues = sourceRange.getValues()[0]; // 提取单行数据 // 获取目标表格的命名范围信息 const targetNamedRange = sheet.getRange("NStarfsmenn"); const targetStartCol = targetNamedRange.getColumn(); // 目标表格起始列(B列,即第2列) const targetStartRow = targetNamedRange.getRow(); // 计算目标表格的下一个空行:从目标起始行开始,找最后有数据的行,再加1 const lastDataRow = sheet.getRange(targetStartRow, targetStartCol, sheet.getLastRow() - targetStartRow + 1, 1) .getValues().filter(row => row[0] !== "").length + targetStartRow; // 将数据粘贴到目标空行的起始列 sheet.getRange(lastDataRow, targetStartCol, 1, sourceValues.length).setValues([sourceValues]); // 清空源输入区域 sourceRange.clearContent(); }
关键说明:
- 精准定位目标空行:不再用工作表的最后一行,而是从目标表格的起始行开始统计有效数据行,避免工作表其他区域数据干扰
- 锁定粘贴起始列:通过
targetStartCol获取目标表格的首列(B列),确保数据从正确位置开始粘贴 - 仅复制单行数据:提取源范围的单行数据,只粘贴到目标表格的一行,不会覆盖整个范围
内容的提问来源于stack exchange,提问作者Morrigan
相关产品推荐
相关产品推荐

