如何修改宏脚本将任意活动单元格内容复制到指定工作表E2单元格?
解决方法:替换为当前活动单元格的引用
你只需要把固定的getRange('\'orders/sales\'!C29')替换成spreadsheet.getCurrentCell(),同时可以删掉录制宏自动生成的冗余activate()操作,让代码更简洁直观。
修改后的完整代码如下:
function invoice() { var spreadsheet = SpreadsheetApp.getActive(); // 获取当前选中的活动单元格 var activeCell = spreadsheet.getCurrentCell(); // 定位到"facture"工作表的E2单元格 var targetCell = spreadsheet.getSheetByName('facture').getRange('E2'); // 将活动单元格内容复制到目标单元格 activeCell.copyTo(targetCell, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); };
关键改动说明
spreadsheet.getCurrentCell():直接获取你当前选中的任意活动单元格,完全替代原来固定的'orders/sales'!C29单元格引用- 移除了所有
activate()步骤:这些是录制宏自动生成的冗余操作,直接操作单元格对象就能完成复制粘贴,不需要先激活单元格 - 简化目标单元格获取:一步定位到"facture"表的E2,逻辑更清晰
内容的提问来源于stack exchange,提问作者Fred K
相关产品推荐
相关产品推荐

