Jon*_*Jon 5 google-apps-script
请注意:我不太熟悉编码,并且对谷歌脚本来说是全新的。
我正在尝试测试脚本中的背景颜色。具体来说,我将把一个名称数组存储到命名范围中,并想要计算有多少个单元格设置为绿色。
到目前为止,我有以下内容,但收到错误: TypeError: Cannot set property "0.0" of undefined to "#00ff00"
function testCount(range) {
var ranges = SpreadsheetApp.getActiveSpreadsheet().getRangeByName("testrange");
var names = SpreadsheetApp.getActiveSpreadsheet().getRangeByName("testrange").getValues();
var NumColumns = ranges.getNumColumns();
var NumRows = ranges.getNumRows();
var c = 0;
for (var i = 0; i<NumColumns; i++){
for (var j = 0; j<NumRows; j++){
if (ranges.getBackgrounds()[i][j] ="#00ff00"){
c++;
}else{
c=c;
}
}
}
return c;
Run Code Online (Sandbox Code Playgroud)
当我对彩色单元格尝试以下操作时,我获取了绿色的值
return ranges.getBackgrounds()[0][1];
Run Code Online (Sandbox Code Playgroud)
看起来你的代码需要一些清理。我将解释编辑内容。
function testCount() {
var ranges = SpreadsheetApp.getActiveSpreadsheet().getRangeByName("testrange");
Run Code Online (Sandbox Code Playgroud)
不需要这var names条线,因为看起来你不使用它。
var NumColumns = ranges.getNumColumns();
var NumRows = ranges.getNumRows();
Run Code Online (Sandbox Code Playgroud)
立即获取所有单元格的背景并将其存储在变量中。
var backgrounds = ranges.getBackgrounds();
var c = 0;
for (var i = 0; i<NumColumns; i++){
for (var j = 0; j<NumRows; j++){
Run Code Online (Sandbox Code Playgroud)
引用backgrounds我们上面创建的变量。另外,第一个数字是行号,第二个数字是列号。所以你会想要交换i你j原来拥有的东西。另外,a = 10 将值 10 赋给变量 a。要检查相等性,您可以使用==. 这检查两个值是否相同。
if (backgrounds[j][i] == "#00ff00"){
c++;
}
Run Code Online (Sandbox Code Playgroud)
不需要有一个else不做任何事情的声明。您可以省略该else部分。
}
}
return c;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9184 次 |
| 最近记录: |