我需要转到列中的最后一个非空白单元格。 很长一段时间,我一直很高兴地使用此代码:
ss.getRange('A500').activate();
ss.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.UP).activate();
但是现在它崩溃了,并说:“很抱歉,发生服务器错误。请稍候,然后重试。” 几天后,我仍然收到相同的消息!
当我调试时,它不会超过上面的第二行,所以我想这就是问题所在。
我一直在寻找解决方案,但只能找到不依赖该列空白的代码。我的列的最后一个单元格上方有许多空白单元格,其中有数据。
请帮助。
答案 0 :(得分:1)
const data = ss.getRange('A:A').getValues();
let ar=data.map(x => x[0]); //turns 2D array to 1D array, so we can use indexOf
const lastRow=ar.indexOf('');
答案 1 :(得分:0)
一个简单的循环就可以完成这项工作:
var data = ss.getRange('A1:A500').getValues();
for(var i = data.length - 1; i>=0; --i){//bottom-up loop
if(data[i][0] !== '') break;
}
console.log(i+1);//row number of the non-blank row in a column.