我有一个列表,我想把元素添加到列表中,同时在嵌套的for循环中循环单元格索引引用。然而,似乎没有一种方法可以让我利用它将元素插入到一个列表中。参见示例。
var colors = range.getBackgrounds();
for (var i = 0; i < rangeHeight; i++)
for (var j = 0; j < rangeWidth; j++)
colors.add("#somecolorhash");
range.setBackgrounds(colors);
这将是我想的方法,但是IDE中的... Recorded Macros
似乎没有一个插入或等价的方法来应用于列表对象。对这个问题有什么想法吗?
如果你登录 range.getBackgrounds()
你会看到它返回一个二维数组,形式为 [[#ffffff, #ffffff], [#ffffff, #ffffff]]
- 而不是列表!
要将新的值分配给 colors
,你需要用它们的索引来处理单项。colors[i][j]
.
要知道,为了 setBackgrounds
色域 colors
需要像你的射程一样有相同的刻度。
colors
的范围会变得太大而无法满足工作表的要求。样品1。
function myFunction() {
var range = SpreadsheetApp.getActiveSheet().getRange("A1:B2");
var colors = range.getBackgrounds();
Logger.log(colors);
var rangeHeight = colors.length;
var rangeWidth = colors[0].length;
for (var i = 0; i < rangeHeight; i++){
for (var j = 0; j < rangeWidth; j++){
colors[i][j]="#000000";
}
}
range.setBackgrounds(colors);
}
{...}
内 for
循环,否则只有后面的第一行会被视为循环的一部分。setBackground()
而不是 setBackgrounds()
.样本2:
function myFunction2() {
var range = SpreadsheetApp.getActiveSheet().getRange("A1:B2");
range.setBackground("#00ff00");
}