gpt4 book ai didi

google-sheets - 谷歌表格添加按钮以插入具有公式的新行

转载 作者:行者123 更新时间:2023-12-05 03:38:14 27 4
gpt4 key购买 nike

这是我的数据的简化版本。我想在灰色区域的底部放置一个按钮,以便在单击时在底部上方插入一个新行。新行的公式必须与其之前的行相同。

enter image description here我的真实公式非常复杂,所以我无法使用 arrayFormula 来完成新行中的数据。 this a link to my spreadsheet.

最佳答案

您可以引用此示例代码,它使用自定义菜单插入新行,其中包含基于前一行的公式。

代码:

function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('Insert New Row', 'insertRow')
.addToUi();
}

function insertRow() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
var lastCol = sheet.getLastColumn();

//Exit function if current active sheet is not Sheet1
if(sheet.getName() != "Sheet1"){
return;
}

//insert new row
sheet.insertRowAfter(lastRow);
sheet.getRange(lastRow,2,1,3).copyTo(sheet.getRange(lastRow+1,2));
}

它有什么作用?

  1. 使用getLastRow() 获取事件工作表中包含内容的最后一行和最后一列|和 getLastColumn()
  2. 使用 insertRowAfter(afterPosition) 在包含内容的最后一行之后插入新行
  3. 使用 getRange(row, column, numRows, numColumns) 获取包含内容的最后一行的范围

地点:

row = 包含内容的最后一行

column = 您要开始的列索引(在示例表中它位于 B 列/索引 2 中)

numRows = 应该是 1(我们只想复制当前有内容的最后一行)

numCols = 选择的列数。 sample sheet中有3列(B-D列)

  1. 使用copyTo(destination)复制在步骤 3 中选择的范围的值和格式并将其粘贴到新添加的行中。目标范围应该是左上角的单元格。因为我们想将它复制到新行。我使用了 getRange(last row +1, 2)

输出:

enter image description here

注意事项:

  • 如果您想使用灰色行下方的按钮,只需在为按钮分配脚本时使用insertRow

  • 请确保有内容的最后一行是有公式的行。


如果你想在指定的工作表列表上使用该功能,你可以在示例代码中添加它。如果列出的有效工作表中不包含当前事件工作表名称,这将退出该功能

  var validSheets = ["Sheet1", "Sheet2"];

if(!validSheets.includes(sheet.getName())){
return;
}

关于google-sheets - 谷歌表格添加按钮以插入具有公式的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69033676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com