Google电子表格脚本,用于根据单元格值插入新行

时间:2017-05-10 13:11:22

标签: google-sheets

Spreadsheet data looks like this

function myFunction()
 { 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Active Listeners');
 sh.insertRowBefore(15551)
 }

因为我有大量的行可以使用。如果范围的值与" 4月9日和#34;然后在之前插入行。任何人都可以帮助我做到这一点。

1 个答案:

答案 0 :(得分:1)

从底部循环行的'for循环'几乎可以解决问题。循环在i指定的每一行之后插入一行。请记住,如果将4月9日列格式化为日期,则需要使用不同的解决方案。这仅适用于纯文本。您可以选择列并使用菜单上的“格式>数字>纯文本”更改为纯文本。

function myFunction() { 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Active Listeners');
//var shlen = sh.getDataRange().getLastRow(); //returns integer last row
var shlen = Browser.inputBox("Enter Last Row of Preferred Range", Browser.Buttons.OK_CANCEL);
 var ecell = sh.getActiveCell().getA1Notation();

你可能需要一个不同的dataRange(下面),我只是抓住整张表中的数据参数(上图),然后抓住A1符号“A1:B [底行数字参考]”中指定的范围“修改可能是你需要”B1:C“+ [shlen]或其他任何范围。

  if (shlen >= 1) {
var dataRange = sh.getRange("A1:A" + shlen).getValues();
for (var i = shlen; i > 0; i--) {
  var row = dataRange[i-1];

  if (row[0] == "Apr 9") {
     sh.insertRowAfter(i-1)
  }
}}

}

如果他们有更好的答案,那么比我更有知识的人可以投入,但我唯一的解决方案(如果它是一个人应该没问题)将只重复几次脚本,从第一行开始你每次都选择。选择单元格A1,然后按“控制(或命令)+向下箭头”。它会带你到第一个差距,这应该是前一个脚本结束的地方。记住您要使用的行号,并在再次运行脚本时将其插入输入框中。可能需要几次迭代,但你会到达那里。

如果要重复这个过程,那么找到解决方案的好运:)