如何创建宏以复制活动单元格中的整行并粘贴到活动单元格下方?

How to create macro to copy entire row at the active cell and paste below at active cell?

Google 工作表 - 复制活动单元格中的整行并粘贴到宏下方的活动单元格中。

在活动单元格下方插入行很简单。

function mcrPackagedPart() {
  var spreadsheet = SpreadsheetApp.getActive();
  var activeRow = spreadsheet.getActiveCell().getRow();
  var activeRange = spreadsheet.getRange("A"+activeRow+":Z"+activeRow).getValues();
    // test
  spreadsheet.getRange(activeRange).activate();
  spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);    
  spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange(activeRange).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

很可能你已经找到了 Google Sheets 的宏录制功能,因为问题的代码。

虽然此功能可能很有用,但为了能够改进录制的宏,您应该花一些时间学习 JavaScript、Apps 脚本和电子表格服务的基础知识。如果您还没有这样做,请阅读 https://developers.google.com/apps-script/guides/sheets

下面显示了如何查看带有编辑宏的 macros.gs 文件,以保持在活动单元格上方插入一行所需的最少行数:

/** @OnlyCurrentDoc */

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
};