所以现在这让我大吃一惊,没有人能帮我解决这个问题。我已成功将整行移到我的"存档"表格,但不是标题中提到的标准,我已经搞乱了大约两三个星期。我希望能够归档30天之前的整行并且值为#34;完成"。我一直在尝试成功合并onOpen脚本,但如果有其他方法,我们将不胜感激。
以下是我正在处理的onEdit脚本以及之前已成功使用的脚本(减去我想要设置的标准)。我以前用onOpen进行了编辑,没有任何错误,但它不起作用。
清单表是我从中排出的行,The" Archive" sheet是我移动行的目的地,第15列显然是我找到我的价值"完成"。如有必要,我可以让您访问我的测试表。
function onEdit(event) {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 4 or D
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Checklist" && r.getColumn() == 15 && r.getValue() == "Complete") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Archive");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
答案 0 :(得分:0)
我创建了一个示例电子表格here,其中包含所有应用脚本以完成您的任务;只需复制一下即可。 Sheet3上有一部分电子表格计算了脚本需要存档的行数的索引,抱歉我对此很新,所以也许其他人可以编辑我的脚本来包含它。
我用来获取需要存档的记录索引的公式是:
=COUNTA(IFERROR(FILTER(Sheet1!A:A,Sheet1!A:A<TODAY()-30,Sheet1!B:B="Complete")))
这个脚本:
注意:触发此脚本的另一个选项是更改功能名称,转到菜单中的图标,添加新触发器,然后将其设置为功能&gt;来自电子表格&gt;在开放
function onOpen() {
var s1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var s2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
var s3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet3');
var sortRange = s1.getRange(1, 1, s1.getMaxRows(), 2);
sortRange.sort([{column: 2, ascending: true}, //first column to sort
{column: 1, ascending: true}]);//second column to sort
var lastDateIndex = s3.getSheetValues(3, 2, 1, 1); //number of rows to move
var range = s1.getRange(1, 1, lastDateIndex, 2)
startRow = range.getRowIndex(),
numRows = range.getNumRows(),
numCols = range.getNumColumns()
var values = range.getValues(),
lastRow = s2.getLastRow();
s2.getRange(lastRow+1,1,lastDateIndex,2).setValues(values);
s1.deleteRows(startRow,numRows);
var sortRange = s1.getRange(1, 1, s1.getMaxRows(), 2);
sortRange.sort([{column: 1, ascending: true}]);
}