Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何在新行下添加新行的脚本_Google Apps Script - Fatal编程技术网

Google apps script 如何在新行下添加新行的脚本

Google apps script 如何在新行下添加新行的脚本,google-apps-script,Google Apps Script,因此,基本上我有一个用于添加新行的宏: function Row() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('66:66').activate(); spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1); spreadsheet.getActiveRang

因此,基本上我有一个用于添加新行的宏:

function Row() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('66:66').activate();
  spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
  spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('D74').activate();
它会在最后一行之后添加一行,但每当我再次使用宏时,它会在两行之间而不是在新行下添加一行

还有一种方法可以完全复制前一行的格式吗


谢谢

这将在最后一行之后插入一个包含内容的新行,并复制其格式

function newRowAfterContent() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.insertRowAfter(sheet.getLastRow());
  sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).copyFormatToRange(sheet, 1, sheet.getLastColumn(), sheet.getLastRow() + 1, sheet.getLastRow() + 1);
}
对于您的表格:

function newRowAfterNamedRange() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var namedRangeObj = sheet.getNamedRanges()
    .find((range) => range.getName() == "MyRange");
  var namedRange = namedRangeObj.getRange();
  sheet.insertRowAfter(namedRange.getRow() + namedRange.getHeight() - 1);
  sheet.getRange(namedRange.getRow() + namedRange.getHeight() - 1, namedRange.getColumn(), 1, namedRange.getWidth()).copyFormatToRange(sheet, namedRange.getColumn(), namedRange.getColumn() + namedRange.getWidth() - 1, namedRange.getRow() + namedRange.getHeight(), namedRange.getRow() + namedRange.getHeight());
  namedRangeObj.setRange(sheet.getRange(namedRange.getRow(), namedRange.getColumn(), namedRange.getHeight() + 1, namedRange.getWidth()));
}

问题是,它在第二个表的最后一行(第78行结束)之后添加了一个新行,但我有一个表在顶部的几行中,新行应该添加。该表在第66行结束。您可以尝试为每个表使用单独的表(选项卡),这将使数据更易于处理。另一个选项是将一个范围命名为所需的表。我知道如何命名一个范围,但我应该向脚本添加什么?如果要使用命名范围,则需要在工作表中获取命名范围的列表,选择第一个,在其末尾追加一行,添加格式,然后展开命名范围以包括新行。我正在做一个例子,它在哪里?找不到:)你能不能只使用
电子表格。getSheets()[0]。appendRow()
?@RafaGuillermo不,他们需要将它插入到表格后面的表格中。请参阅的评论。