Spreadsheet data looks like this
function myFunction()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Active Listeners');
sh.insertRowBefore(15551)
}
因为我有大量的行可以使用。如果范围的值与" 4月9日和#34;然后在之前插入行。任何人都可以帮助我做到这一点。
答案 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,然后按“控制(或命令)+向下箭头”。它会带你到第一个差距,这应该是前一个脚本结束的地方。记住您要使用的行号,并在再次运行脚本时将其插入输入框中。可能需要几次迭代,但你会到达那里。
如果要重复这个过程,那么找到解决方案的好运:)