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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google电子表格脚本,用于根据单元格值插入新行相关的知识,希望对你有一定的参考价值。

Spreadsheet data looks like this

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

因为我有大量的行可以工作。如果范围的值与“Apr 9”匹配,则在之前插入行。任何人都可以帮助我做到这一点。

答案

从底部循环行的“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,然后按“控制(或命令)+向下箭头”。它会带你到第一个差距,这应该是前一个脚本结束的地方。记住您要使用的行号,并在再次运行脚本时将其插入输入框中。可能需要几次迭代,但你会到达那里。

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

以上是关于Google电子表格脚本,用于根据单元格值插入新行的主要内容,如果未能解决你的问题,请参考以下文章

基于另一个单元格值的条件格式

基于单个单元格值的 Google 电子表格中的重复行

Google表格:根据单元格值返回相同行数的公式

根据 Python HTML 电子邮件中的单元格值将 HTML 表格单元格从“低到高颜色阴影”着色

插入新行时在谷歌电子表格上触发脚本

Google 表格脚本 - 根据单元格作为今天的日期发送电子邮件