最后一行,最后一列得到奇怪的值?

时间:2016-09-01 21:20:40

标签: google-apps-script google-sheets spreadsheet

所以,我一直在努力尝试用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++;
  }*/

}

我想我不知道为什么我会得到那些价值观?也许soome缓存相关的问题?我不太明白。

任何想法都会受到高度赞赏。

谢谢, 恩里克·布拉沃。

1 个答案:

答案 0 :(得分: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();
}