我有以下函数可以逐行搜索列,并在找到x时隐藏一行。它有效,但很慢。
function SummaryViewGenerate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
for( i=1 ; i<=lastRow ; i++) { // i <= lastRow
var status = sheet.getRange("K"+i).getValue();
if (status == "x") { // status == "x"
sheet.hideRows(i);
}
}
}
问题在于它的使用速度非常慢。关于如何改进它的任何想法。有人在另一个线程中提到过将它放入数组中。我仍然是一个编码新手,所以任何正确方向的帮助都会有用。
答案 0 :(得分:1)
我认为getValues()会更快。参考是https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()
样品如下。
function SummaryViewGenerate(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var array = sheet.getRange('k1').offset(0, 0, sheet.getLastRow(), 1).getValues();
for (var row in array) {
for (var col in array[row]) {
if(array[row][col] == "x") {
sheet.hideRows(row + 1); // (row + 1) is row number.
}
}
}
}