求助完善Google Sheets脚本:实现指定单元格复制并逐行追加粘贴
Google Sheets 脚本完善方案
直接上能满足需求的完整脚本,核心是自动定位Log表的下一个空行,仅粘贴值:
function copyToLog() { // 获取当前表格及对应工作表 const ss = SpreadsheetApp.getActiveSpreadsheet(); const bishopSheet = ss.getSheetByName('Bishop'); const logSheet = ss.getSheetByName('Log'); // 提取Bishop表K11、K12的数值,将纵向数组转为横向 const sourceValues = bishopSheet.getRange('K11:K12').getValues().flat(); // 计算Log表C列下一个空行的行号 const nextRow = logSheet.getRange('C:C').getValues().filter(String).length + 1; // 若Log表有表头占用前几行,比如表头在第3行,把+1改成+4即可,根据实际情况调整 // 将数值写入Log表对应行的C、D列 logSheet.getRange(nextRow, 3, 1, 2).setValues([sourceValues]); }
关键逻辑说明
getValues().flat():把K11、K12的纵向单元格值转成横向数组,适配Log表C、D列的横向写入需求getRange('C:C').getValues().filter(String).length:统计C列非空单元格数量,加1直接定位到下一个空行setValues([sourceValues]):仅写入单元格原始值,不会携带格式、公式,完全匹配需求
使用步骤
- 打开目标Google表格,点击「扩展程序」→「Apps脚本」
- 替换原有代码为上面的脚本,保存并命名项目
- 返回表格,点击「插入」→「绘图」绘制按钮(或用内置按钮组件),关联
copyToLog函数 - 点击按钮测试,每次点击都会自动把K11、K12的值写入Log表的下一行C、D列
内容的提问来源于stack exchange,提问作者Kyro
相关产品推荐
相关产品推荐

