我创建了一个简单的脚本,它迭代活动(选定)范围并检查单元格值是否小于0.如果是,则使单元格变为红色,否则为绿色!它工作正常,但需要很长时间(超过一分钟)才能在小纸张上运行(26个x 30列)
有没有人可以看到加快这个速度?
function colourize() {
var range = SpreadsheetApp.getActiveSheet().getActiveRange();
var numRows = range.getNumRows();
var numCols = range.getNumColumns();
for (var i = 1; i <= numRows; i++) {
for (var j = 1; j <= numCols; j++) {
if( range.getCell(i,j).getValue() < 0 ) {
range.getCell(i,j).setBackground('#ea9999');
} else {
range.getCell(i,j).setBackground('#b6d7a8');
}
}
}
};
答案 0 :(得分:3)
只需在数组级别执行此操作:
function colourize() {
var range = SpreadsheetApp.getActiveSheet().getActiveRange();
var values = range.getValues();
var BGColors = range.getBackgrounds();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j <values[0].length; j++) {
if(values[i][j] < 0 ) {
BGColors[i][j]='#ea9999';
} else {
BGColors[i][j]='#b6d7a8';
}
}
}
range.setBackgrounds(BGColors)
};