如何使用Google Apps Script复制Google Sheets最后行指定列数据到另一工作表
解决方案
原代码的核心问题是复制范围设定为了整列(例如A:A),因此会复制对应列的全部行数据,我们只需要把复制/粘贴范围修改为源表最后一行的对应单元格和目标表待写入行的对应单元格即可。
修改后的可直接运行的代码如下:
function copyLastRow() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = ss.getSheetByName("Total"); const destSheet = ss.getSheetByName("vnSheet"); // 定义需要复制、粘贴的对应列 const copyColumns = ['A', 'B', 'D', 'F']; const pasteColumns = ['A', 'B', 'D', 'F']; // 获取源表最后一行的行号,仅提取该行数据 const sourceLastRow = sourceSheet.getLastRow(); // 计算目标表待写入行号:现有最后一行+1,默认追加新行 // 若需要覆盖目标表最后一行,可改为 const destLastRow = destSheet.getLastRow() const destLastRow = destSheet.getLastRow() + 1; // 循环逐列复制对应单元格内容 for (let i = 0; i < copyColumns.length; i++) { const sourceRange = sourceSheet.getRange(`${copyColumns[i]}${sourceLastRow}`); const destRange = destSheet.getRange(`${pasteColumns[i]}${destLastRow}`); sourceRange.copyTo(destRange, {contentsOnly: true}); } }
调整说明
- 仅提取源表
Total最后一行的指定列数据,不会复制历史行内容 - 默认将数据追加到
vnSheet的最后一行下方,不会覆盖原有数据 - 保留
contentsOnly:true配置,仅复制单元格数值,不会同步格式、公式等内容 - 若后续需要调整复制/粘贴的对应列,直接修改
copyColumns和pasteColumns数组即可
内容的提问来源于stack exchange,提问作者Mohammad Al Amin
相关产品推荐
相关产品推荐

