所以,我一直在努力尝试用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缓存相关的问题?我不太明白。
任何想法都会受到高度赞赏。
谢谢, 恩里克·布拉沃。
答案 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();
}