2017-09-25 9 views
0

私はGoogleのアプリケーションスクリプトでこのような何かを書かれている:私は考えていたものGoogle App Script Array - なぜ返されないのですか?

var crossup = []; 
var i; 
var name_cell; 
var cross_up_cell; 
cross_up_cell = sheet.getRange(2, 1); 
for (i = 1; i <= 12; i++) { 
var ticker; 
var value1; 
ticker = name_cell.offset(0, i).getDisplayValue(); 
value1 = cross_up_cell.offset(0, i).getDisplayValue(); 
if (value1=="YES") {crossup.push(ticker)}; 
} 

:私は、私は出力に値「ティッカー」getDisplayValue()によって割り当てるとVALUE1の配列を思っていたが、私が配列を出力すると、一連の "未定義"を出力として受け取ったことがわかります。

正確には、私のGoogle SpreadSheetでvalue1が本当に "はい"になると、ifステートメントはクロス配列に "ティッカー"を押し込んだが、表示値を押し戻すのではなく "未定義" ...

ヘルプ!!!どうして?

答えて

0

var name_cellが設定されていません。 下記のコードを使用してください。

cross_up_cell = sheet.getRange(2、1);

sheet = SpreadsheetApp.getActiveSheet(); 
    cross_up_cell = sheet.getRange(2, 1); 
+0

こんにちはThiago、私はそれが理由ではないかもしれないと思っています。私は実際に引用された行の前にコードを持っていました: var ss = SpreadsheetApp.openById( "something"); var sheet = ss.getSheetByName( "PASTEVALUE"); しかし、まだ動作しません...他のアイデア??? 多くの感謝!!! –

+0

私は "object.method"のようなものを何とかgoogle appスクリプトの配列にプッシュできないかもしれませんか? –

0

tickerのためのあなたのoffset方法は、あなたのcrossup配列にプッシュされますundefinedセル/範囲を返すようにするには、完全に、name_cellを定義することはありません。あなたが拡張Range(フル行のgetDisplayValues()を使用することができ、インクリメンタルに相殺細胞の代わりに

function myFunction() { 
    var sheet = SpreadsheetApp.openById(*****).getSheetByName("PASTEVALUE"), //get sheet 
     crossup = []; //initialize empty crossup array 

    //get the display values in row 2 up to column 12 
    var values = sheet.getRange(2, 1, 1, 12).getDisplayValues()[0]; 
    //get the display values in row 3 up to column 12, assuming they are in row 3 
    var ticker = sheet.getRange(3, 1, 1, 12).getDisplayValues()[0]; 

    //initialize increment in for loop, i's value goes from 0 to values.length-1 (the array's full index range) 
    for (var i in values) { 
    //if the value in row 2, column "i" is "YES", push the value of row 3, column "i" to the crossup Array 
    if (values[i] == "YES") crossup.push(ticker[i]); 
    } 

    //do stuff with crossup... 

} 

あなたの構文は、初期化し、変数を割り当てると少し奇妙であるので、私はあなたが投稿スニペットを書き換えましたまたは列、または複数の行と列)を使用して2D配列を取得することができます。

例でname_cellを定義するか、構文を変更して問題を解決する必要があります。問題や疑問がある場合は教えてください。

関連する問題