用于插入行并复制公式的Google脚本

时间:2014-10-14 16:43:42

标签: google-apps-script google-sheets

我是新来的,在mo的谷歌脚本的精彩世界中苦苦挣扎,所以可以真的帮到你。

我有一个谷歌工作表文档和列c到z都包含我在整个工作表中复制的公式,

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

任何人都可以帮我提供我需要的脚本吗?

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

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});
}

如果有人可以打电话给我如何解决这个问题我会非常感激

由于

2 个答案:

答案 0 :(得分:1)

代码:

而不是sh.getLastRow()使用sh.getActiveCell().getRow()

答案 1 :(得分:0)

我修改了你的脚本,因为它有几个变量没有正确声明。

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});
}