【发布时间】:2019-02-14 00:02:03
【问题描述】:
我有一个超过 50,000 行的 Google 表格,我每天都会使用新数据进行更新。在一天结束时,我运行了一个“IF”函数,它可以帮助我确定是否要删除该行。
然后我编写了一个脚本来查看工作表并删除特定列中包含“DEL”的任何行。问题是由于我有这么多行,脚本运行时间太长。如果单元格具有字母“DEL”,任何人都知道更有效的删除/清除行的方法吗?
function deleteRows() {
var sheet = SpreadsheetApp.getActive().getSheetByName('DEL_test');
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[9] == 'DEL') { // Search cells in Column "J" and delete row if cell is equal to "DEL"
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
Browser.msgBox('COMPLETE');
};
【问题讨论】:
-
暂时我已经消除了使用“deleteRow”的希望,因为它看起来是一个操作缓慢的功能。这导致我使用这个暂时有效的脚本。谢谢大家给我时间。
-
使用“erase-remove”模式:将所有要删除的内容移动到一个位置(例如工作表的末尾),找到该位置的边界,然后批量删除。跨度>
-
@Kevin Hall 很抱歉我的回答对您的情况没有用处。我想学习更多。
标签: google-apps-script google-sheets