gpt4 book ai didi

javascript - 获取范围内的 x 单元格谷歌表格应用程序脚本

转载 作者:行者123 更新时间:2023-12-01 17:17:09 25 4
gpt4 key购买 nike

使用 google sheets apps 脚本,是否有可能在一系列单元格中获取 X 单元格,如下所示:


var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

var cells = sheet.getRange("D6:BF100"); // the range

for (var x = 0; x < 100; i++) {
var cell = cells[row][x]; // this is the line that doesn't work

if (someCondition(x)) {
cell.setBackground("red");
}
}

我不想更改每个单元格的颜色,只更改条件正确的单元格。

我知道可以这样做:

var cell = sheet.getRange(row+i);

但是这种方法需要很长时间才能完成 for 循环,因为需要扫描数百个单元格。我宁愿只对整个范围使用一次 getRange(而不是一次只使用一个单元格),然后从该范围(它应该使二维数组正确吗?)设置单元格值。我认为那样会快很多。

是否有不同的方法可以更快地完成它,或者我只需要这样做:var cell = cells[row][x]; 一种不同的方式。

谢谢!

最佳答案

看起来您的 for 循环构造不正确。您增加未在任何地方定义或使用的变量 i。此外,您可以使用变量 row 而无需定义它。

这需要很长时间,因为每次调用 cells.getRange() 时它都必须查询您的工作表相反,您可以使用 cells.getValues() 查询一次以获取整个范围,然后一次改变一个满足条件的单元格颜色。

尝试以下操作;

var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

var cells_range = sheet.getRange("D6:BF100");
var cells_values = cells_range.getValues();

for (var col = 1; col <= cells_values[0].length; col++) {
for (var row = 1; row <= cells_values.length; row++) {
if (someCondition(cells_values[row][col])) {
cells_range.getCell(row, col).setBackground("red");
}
}
}

关于javascript - 获取范围内的 x 单元格谷歌表格应用程序脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61780876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com