我有一个列表,我希望在循环嵌套的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);这就是我想要做的,但是Recorded Macros中的集成开发环境似乎没有一个插入或等效的方法来应用于列表对象。对此有什么想法吗?
发布于 2020-05-20 17:25:55
range.getBackgrounds(),您将看到它返回[[#ffffff, #ffffff], [#ffffff, #ffffff]]形式的二维数组,而不是列表!colors,您需要通过索引colors[i][j].setBackgrounds颜色范围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()而不是setBackground()示例2:
function myFunction2() {
var range = SpreadsheetApp.getActiveSheet().getRange("A1:B2");
range.setBackground("#00ff00");
}https://stackoverflow.com/questions/61902300
复制相似问题