在Google Sheets中使用列表宏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Google Sheets中使用列表宏相关的知识,希望对你有一定的参考价值。
我有一个列表,我想把元素添加到列表中,同时在嵌套的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");
以上是关于在Google Sheets中使用列表宏的主要内容,如果未能解决你的问题,请参考以下文章
使用Sheets API v4获取与Google帐户关联的所有电子表格列表
Google Sheets ArrayFormula - 前行的平均值
使用 Google Sheets API 将图像插入 Google Sheets 单元格
如何使用 Sheets APIv4 Java 在 Google 表格中插入一行