2017-08-20 9 views
0

のために働いていない私は仕事が下から行の値と一致するように、というループを持っており、それはこのように書きます: - 私は同じことをしようとしていますしかし、私は結果を取得していないのですループが列一致

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. 

答えて

1

match2.lengthは、配列または範囲内の行の数です。

この配列[[x,x,x],[y,y,y],[z,z,z]...]には、最初の行に3つのx、2番目の行に3つのyなどがあります。したがって、s3.getRange(1, 1,lastColumn).getValues();のlastColumnは、その範囲内の行数です。基本的には、各行を読み込み、一度に1つずつ取得するほうが簡単です。または、行列のようにデータを転置して、現在行である列を読み取ることもできます。

「ビッグ・マックを探してループ:そのようなVARデータ=のrange.getValues(などのコマンドによって得られたこれらの二次元アレイで

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; 
     } 
     } 
    } 
} 

); 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の要素の数と等しく、単純にそれを数値の行と同じにします。

+0

基本的に私は "A1:Z1"を通してデータを照合しようとしていますが、私のforループはどのようなものでしょうか? – Mask

+0

私のコードも編集しました。 – Mask

+0

@Mask単純なループがあります。 – Cooper