我正试图得到谷歌表格第一行的最后一列。对于列的最后一行,我找到了很多帮助,但我想要相反的方法。
我尝试过使用GetLastColumn,但我肯定误解了“content”(https://developers.google.com/apps-script/reference/spreadsheet/sheet?hl=en#getlastcolumn)的含义。
var sheet = SpreadsheetApp.getActive().getActiveSheet();
var last_column = sheet.getRange(1,1,1,30).getLastColumn();
Logger.log(last_column)
这将返回"30“而不是"16",尽管P1是第1行上最后一个非空单元格,我不能使用var last_column = sheet.getLastColumn();
,因为我想用一个值填充Q2、Q3、Q4等。一旦发生这种情况,纸张的最后一栏是Q,而不是P。
事实上,在我看来,将范围设置为任意的最大列的解决方案并不理想,但我无法将范围设置为整行(不超过一行)。
但主要的问题是:我应该怎样才能得到一个"16“的回报?
发布于 2022-06-08 16:03:18
描述
若要查找行使用的第一个空单元格,col是非空单元格。
let range = some row of a spreadsheet
let col = range.getNextDataCell(SpreadsheetApp.Direction.NEXT);
这相当于在键盘上键入CTRL+Right。
若要查找列使用的第一个空单元格,行为非空单元格。
let range = some column of a spreadsheet
let row = range.getNextDataCell(SpreadsheetApp.Direction.DOWN);
这相当于在键盘上键入CTRL+Down。
如果在数据范围内有一个空白单元格,它就会停止。
参考
发布于 2022-06-08 15:39:11
获得行宽
function getRowWidth(row, sh, ss) {
var ss = ss || SpreadsheetApp.getActive();
var sh = sh || ss.getActiveSheet();
var row = row || sh.getActiveCell().getRow();
var rcA = [];
if(sh.getLastColumn()){rcA = sh.getRange(row, 1, 1, sh.getLastColumn()).getValues().flat().reverse();}
let s = 0;
for (let i = 0; i < rcA.length; i++) {
if (rcA[i].toString().length == 0) {
s++;
} else {
break;
}
}
return rcA.length - s;
}
https://stackoverflow.com/questions/72548255
复制相似问题