使用应用程序脚本在单击按钮时将多行插入 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);
}
}
参考:
我编写了一段代码,用于将单行插入到关键字下方的 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);
}
}