使用应用程序脚本在单击按钮时将多行插入 sheet

Use app script to insert more than one row into a sheet on button click

我编写了一段代码,用于将单行插入到关键字下方的 google sheet 中(有点笨拙,但我不介意,除非有人修复了它他们的头顶)。问题是,我想在其下添加 250 行,作为应用脚本的新手,我不确定在哪里指定我希望它为我添加的行数。

我得到的代码如下所示:

function addRows() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var EditSheet = ss.getSheetByName("Testing"); //source sheet

  var LastRowEdit = ss.getLastRow();

  for(var i = 1; i <= LastRowEdit; i++)
  {

    if(EditSheet.getRange(i,1).getValue() == 'add') //keyword
    {
 
      EditSheet.insertRowAfter(i);
    
    }

  }

}

我很想听听您关于如何调整它以符合我的目标的建议。

谢谢大家!

在您的情况下,使用 insertRowsAfter(afterPosition, howMany) 代替 insertRowAfter(afterPosition) 怎么样?那么,下面的修改怎么样?

发件人:

EditSheet.insertRowAfter(i);

收件人:

EditSheet.insertRowsAfter(i, 250);

顺便说一下,在您的脚本中,getValue() 用于循环。在这种情况下,工艺成本变高。为了降低成本,下面的修改怎么样?

修改后的脚本:

function addRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var EditSheet = ss.getSheetByName("Testing");
  var LastRowEdit = ss.getLastRow();
  var row = EditSheet.getRange("A1:A" + LastRowEdit).getValues().map(([a]) => a).indexOf("add");
  if (row != -1) {
    EditSheet.insertRowsAfter(row + 1, 250);
  }
}

参考: