Google 脚本 - 获取行的最后一个非空列

FAF*_*L87 1 google-sheets google-apps-script

我正在尝试获取 Google 表格第一行的最后一个非空列。我找到了很多关于列最后一行的帮助,但我想要相反的方式。

我尝试过使用 GetLastColumn,但我必须误解“包含内容”的含义(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)
Run Code Online (Sandbox Code Playgroud)

尽管 P1 是第 1 行的最后一个非空单元格,但这会返回“30”而不是“16”。我不能使用 var last_column = sheet.getLastColumn();,因为我想用一个值填充 Q2、Q3、Q4 等。一旦发生这种情况,工作表的最后一列就是 Q,而不是 P。

事实上,在我看来,将范围设置为任意最大列数的解决方案不太理想,但我无法管理将范围设置为整行(且不超过一行)。

但主要问题是:我应该怎么做才能得到“16”的回报?

The*_*zEd 5

描述

要查找行中的第一个空单元格,col 是非空单元格。

let range = some row of a spreadsheet
let col = range.getNextDataCell(SpreadsheetApp.Direction.NEXT);
Run Code Online (Sandbox Code Playgroud)

这相当于在键盘上键入 CTRL+Right。

要查找列中的第一个空单元格,行是非空单元格。

let range = some column of a spreadsheet
let row = range.getNextDataCell(SpreadsheetApp.Direction.DOWN);
Run Code Online (Sandbox Code Playgroud)

这相当于在键盘上键入 CTRL+Down

如果数据范围内有空白单元格,它将停在那里

参考

  1. Range.getNextDataCell()