【问题标题】:Add Row based on cell value, Below the last data in column A根据单元格值添加行,在列 A 中的最后一个数据下方
【发布时间】:2025-12-04 22:35:01
【问题描述】:

我只是需要一些帮助,我在 youtube 中获得了将行添加到指定工作表的代码,但我获得的代码只是在第 2 行之后添加行,并且一直不停地添加它。

代码如下:

function insertRow() {
  let spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheetToAdd = spreadSheet.getSheetByName('test sheet');

  let lastRowEdit = sheetToAdd.getLastRow();

  for(var i = 2; i <= lastRowEdit; i++)
  {
    sheetToAdd.insertRowAfter(i);
  }
}

我想要的是在 A 列中的最后一行下方添加一行数据。要添加的行数基于另一张工作表中的单元格 B2

电子表格示例:https://docs.google.com/spreadsheets/d/1sX6wS0ZPeLC1u0nbU2m8jeZ3dMVEXhkFPR_Ply27Z18/edit#gid=746083055

【问题讨论】:

  • 嘿,请提供更多信息,尤其是您有一个空的 google-sheet 'test sheet' 以及如何完成状态以测试您的代码。也许您可以提供一个共享文档的链接作为最小(非)工作示例。
  • 此外,您还不清楚您想要完成什么,因此无法为您提供帮助。是的,代码做了你所描述的事情,不多不少。要设置一个值,您可以使用 'sheetToAdd.getActiveCell().setValue('some value');'
  • 您好!抱歉,如果我不清楚我的要求,我想要的是在最后一个单元格下方添加一行,其中包含 A 列中的数据。要添加的行数取决于其他工作表中单元格 B2 上的单元格值,这里是示例电子表格:docs.google.com/spreadsheets/d/…
  • 请在您的问题中说明这一点。这样就清楚多了。
  • 已经完成了

标签: javascript google-sheets


【解决方案1】:

此代码可能会解决您的问题: 先决条件:一个谷歌电子表格,其中包含一张名为 Info 的表格,其中包含要添加到单元格“B2”中的行数。 一张名为“在此处添加”的表格,将由下面的脚本填充。

通过根据您的工作表名称更改它,您基本上可以复制它。

评论寻求帮助!

function insertRow() {
  let spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // activates the opened document
  let sheetToAdd = spreadSheet.getSheetByName('add here'); // selects the sheet at the bottom of the SpreadSheet (SpreadSheet is a collection of Sheets (!))

  let rowsToAdd = spreadSheet.getSheetByName('Info').getRange(2,2).getValue(); // get cell B2

  let lastRow = sheetToAdd.getLastRow() + 1; // you want to add after the last row with data
  
  for(var i = 0; i <= rowsToAdd; i++){
    sheetToAdd.getRange(lastRow+i, 1).setValue(i); // get the cell at lastRow+counter and column 1; set the value as wished
  }
}

【讨论】:

  • 您好!抱歉回复晚了,我试过你的代码,它可以工作。但是我遇到了一个问题,它添加了1个额外的空白行,所以如果在单元格B2中的值为2,则执行代码后要添加的行将是3,起初这不是问题,但我观察到如果底部有一个空白行,并尝试再次执行代码,它不会添加任何行。所以下面应该没有空白行。
  • 尝试改变一些东西,但我无法弄清楚,要么它在 B2 的值之上增加了 1 行,要么只增加了 1 行。