首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google Sheets Macros中使用列表

在Google Sheets Macros中使用列表
EN

Stack Overflow用户
提问于 2020-05-20 07:06:50
回答 1查看 34关注 0票数 0

我有一个列表,我希望在循环嵌套的for循环时向其中添加元素,以便对单元格进行索引/引用。但是,似乎没有一种方法可以用来将元素插入到列表中。请参见示例:

代码语言:javascript
复制
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中的集成开发环境似乎没有一个插入或等效的方法来应用于列表对象。对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 17:25:55

  • 如果您登录range.getBackgrounds(),您将看到它返回[[#ffffff, #ffffff], [#ffffff, #ffffff]]形式的二维数组,而不是列表!
  • 要将新值分配给colors,您需要通过索引colors[i][j].
  • Mind对单个条目进行寻址,以便setBackgrounds颜色范围colors需要具有与您的范围相同的维度
  • 因此,在您的示例中,您需要替换颜色而不是添加新值(否则

范围将变得太大。

示例1:

代码语言:javascript
复制
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:

代码语言:javascript
复制
function myFunction2() {
  var range = SpreadsheetApp.getActiveSheet().getRange("A1:B2");
  range.setBackground("#00ff00");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61902300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档