如何创建宏以将整个行复制到活动单元格并粘贴到活动单元格下面?

时间:2018-07-18 13:30:20

标签: google-apps-script google-sheets google-sheets-macros

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);
};

1 个答案:

答案 0 :(得分:1)

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

尽管此功能可能有用,但是为了能够改善录制的宏,您应该花一些时间来学习JavaScript,Apps Script和Spreadsheet Service的基础知识。如果您还没有这样做,请阅读https://developers.google.com/apps-script/guides/sheets

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

/** @OnlyCurrentDoc */

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