用于插入行并向下复制公式的谷歌脚本

google script for inserting a row and copying formulas down

我是新来的,在 mo 的谷歌脚本的美妙世界中苦苦挣扎,所以在你的帮助下真的可以做到。

我有一个谷歌表格文档,c 到 z 列都包含我复制到整个表格的公式,

问题是我需要能够插入一行并将其上方行中的公式复制下来。
我在网上找到了一个代码,它将添加一个新的最后一行并复制公式,但我需要一个可以选择一行的代码,单击脚本并插入一个新行,并将公式复制下来,

任何人都可以帮助我完成我需要执行此操作的脚本吗?

这是我的脚本,它完全符合我的要求,但最后一行不是选定的行。

1
2
3
4
5
6
7
8
9
10
11
function onOpen() {
  var menu = [{name:"Add New Last Row", functionName:"addRow"}];
  ss.addMenu("Extra", menu);
}

function addRow() {
  var sh = ss.getActiveSheet(), lRow = sh.getLastRow();
  var lCol = sh.getLastColumn(), range = sh.getRange(lRow,1,1,lCol);
  sh.insertRowsAfter(lRow, 1);
  range.copyTo(sh.getRange(lRow+1, 1, 1, lCol), {contentsOnly:false});
}

如果有人能告诉我如何解决这个问题,我会非常感激

谢谢

托尼


代码:

使用 sh.getActiveCell().getRow()

代替 sh.getLastRow()


我已经修改了你的脚本,因为它有一些没有被正确声明的变量。

1
2
3
4
5
6
7
8
function addaRow() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lRow = sh.getActiveCell().getRow();
  var lCol = sh.getLastColumn();
  var range = sh.getRange(lRow,1,1,lCol);
  sh.insertRowsAfter(lRow, 1);
  range.copyTo(sh.getRange(lRow+1, 1, 1, lCol), {contentsOnly:false});
}