我有一个循环,可以匹配底部的行值,它是这样的: -
var lastRow = s3.getLastRow();
var dataRange = s3.getRange(1, 1,lastRow).getValues();
for(var k=0;k<dataRange.length;k++)
{doing something}
然而,当我尝试使用列匹配做同样的事情时,我没有得到任何结果,这是我的循环没有做任何事情的列匹配。
var lastColumn = s3.getLastColumn();
var match2 = s3.getRange(1, 1,lastColumn).getValues();
for (var b = 0; b < match2.length; b++)
{if (range[j][0] == match2[0][b])
{ do something }
}
请建议我缺少的东西。
这是从文档中删除的:
getRange(row, column, numRows) Range Returns the range with the top left cell at the given coordinates, and with the given number of rows.
答案 0 :(得分:1)
match2.length是数组中的行数或范围。
此数组[[x,x,x],[y,y,y],[z,z,z]...]
在第一行中有三个x,在第二行中有三个x,依此类推。所以在s3.getRange(1, 1,lastColumn).getValues();
中,lastColumn是该范围内的行数。基本上,它更容易阅读每一行,然后一次获得一列。或者您可以将数据转换为矩阵,然后读取现在为行的列。
寻找&#34;巨无霸&#39;
的循环function myFunction()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=ss.getRange("A1:Z1");
var vA=rg.getValues();
for(var i=0;i<vA.length;i++)
{
for(j=0;j<vA[0].length;j++)
{
if(vA[i][j]=="Big Mac")
{
SpreadsheetApp.getUi().alert('Do not eat this burger as it has massive amounts of fat in it.');
break;
}
}
}
}
在通过诸如var data = range.getValues()之类的命令获得的这些二维数组中; data.length =行数和数据[0] .length =列数。所以数组元素的总数data.length x data [0] .length其中一些可能为null。许多刚接触Google Apps Scripting的程序员在此方面存在问题。事实上我遇到了很多麻烦,所以我最后做了一些额外的工作来帮助加强我的理解,你可以阅读它here。
这些数组如下所示:[[0,1,2,3,4,5 ...],[0,1,2,3,4,5 ...],[0,1, 2,3,4,5 ...] ...]。所以vA是一个数组数组,因此术语vA.length等于vA中的元素数,简单地说它也等于行数。