如何修改Google Sheets宏实现重复复制Full表数据追加到Dump表100次
修改后的Google Sheets脚本
function xmacro() { const spreadsheet = SpreadsheetApp.getActive(); const fullSheet = spreadsheet.getSheetByName('Full'); const dumpSheet = spreadsheet.getSheetByName('Dump'); // 固定要复制的源区域 const sourceRange = fullSheet.getRange('BK3:BT34'); const sourceRows = sourceRange.getNumRows(); const sourceCols = sourceRange.getNumColumns(); // 单次执行模式:每次运行自动追加1次数据,手动执行100次即可(适合每次需要手动更新Full表数据的场景) let lastRow = dumpSheet.getLastRow(); let pasteStartRow = lastRow === 0 ? 1 : lastRow + 1; let targetRange = dumpSheet.getRange(pasteStartRow, 1, sourceRows, sourceCols); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); // 自动循环100次模式:解开下方注释即可使用(适合Full表数据可自动刷新的场景) /* for (let i = 0; i < 100; i++) { let lastRow = dumpSheet.getLastRow(); let pasteStartRow = lastRow === 0 ? 1 : lastRow + 1; let targetRange = dumpSheet.getRange(pasteStartRow, 1, sourceRows, sourceCols); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); // 若每次Full表数据刷新需要等待,可添加下方延迟代码,单位为毫秒,1000=1秒 // Utilities.sleep(1000); SpreadsheetApp.flush(); } */ }
功能说明
- 自动定位空白行:通过
getLastRow()获取Dump表已使用的最后一行,自动将下一次粘贴的起始位置定位到空白首行,不会覆盖原有数据。 - 重复执行配置:提供两种使用模式,可根据你是否需要手动更新Full表数据自行选择。
- 保留仅粘贴数值的逻辑,和原录制宏的粘贴规则一致。
内容的提问来源于stack exchange,提问作者CeeBeeGeeBee
相关产品推荐
相关产品推荐

