2016-09-01 7 views
0

私はちょうどgetLastColumnとgetLastRowでメソッドの値で何が起こっているのかを調べようとしていましたが、何とか最初の3つの列を行番号30だから私は値3と30を得なければなりません?しかし、23、19などのような奇妙な値をどうにかして取得しています。最後の行、最後の列が奇妙な値を取得していますか?

function golpesLocos(sheet, col, origV1, newV1, origV2, newV2) { 
    var ss = SpreadsheetApp.openById("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXx"); 

    var lrow = ss.getLastRow(); 
    var lcol = ss.getLastColumn(); 
    Browser.msgBox(lrow+"  "+lcol); 
    //SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue("Probando"); 
    var rowS = 2; 
    /*var d= new Date(); 
    var rango = SpreadsheetApp.getActiveSheet().getRange(rowS, lcol+1); 
    var notacion = rango.getA1Notation(); 
    var currentTime = d.toLocaleTimeString(); 
    for (var i=1; i < lrow; i++) { 
    ss.getRange(notacion).setValue("Probando "+currentTime); 
    rowS++; 
    }*/ 

} 

なぜ私はそれらの値を得ているのですか?たぶん、キャッシュに関連する問題がありますか?私はかなりそれを得ることはありません。

ご迷惑をおかけして申し訳ございません。

ありがとう、 エンリケブラボー。

+0

は値の短所ですアイデンティティが正しいことを確認していますか(スクリプトは少なくともこれらの2つの数字に限りません)。 – pnuts

答えて

3

おそらく、そのスプレッドシートに複数のシートがあります。関数getLastColumn()またはgetLastRow()をシートの代わりにスプレッドシートに直接呼び出すと、デフォルトでは最初のシート(非表示の場合でも)で実行されます。必要なシートの値が取得されていることを確認するには、使用することができます。

getSheetByName()

function myFunction() { 
    var ss = SpreadsheetApp.openById("{YOUR_ID}"); 
    var sheet = ss.getSheetByName('Hoja1') 
    var lrow = sheet.getLastRow(); 
    var lcol = sheet.getLastColumn(); 
} 

getSheets()

function myFunction() { 
    var ss = SpreadsheetApp.openById("{YOUR_ID}"); 
    var sheet = ss.getSheets()[1] // Index of the sheet 
    var lrow = sheet.getLastRow(); 
    var lcol = sheet.getLastColumn(); 
} 
+0

ありがとう!明らかにそれはシートの非選択であった。私はちょうど他のシートを削除し、それは驚異を演出しました!ありがとう!!! –

+0

編集したいシートを最初の位置に移動することもできます。 – ocordova

関連する問題