首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Script -获取最后一列非空列

Google Script -获取最后一列非空列
EN

Stack Overflow用户
提问于 2022-06-08 15:18:29
回答 2查看 648关注 0票数 0

我正试图得到谷歌表格第一行的最后一列。对于列的最后一行,我找到了很多帮助,但我想要相反的方法。

我尝试过使用GetLastColumn,但我肯定误解了“content”(https://developers.google.com/apps-script/reference/spreadsheet/sheet?hl=en#getlastcolumn)的含义。

代码语言:javascript
运行
复制
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“的回报?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-08 16:03:18

描述

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

代码语言:javascript
运行
复制
let range = some row of a spreadsheet
let col = range.getNextDataCell(SpreadsheetApp.Direction.NEXT);

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

若要查找列使用的第一个空单元格,行为非空单元格。

代码语言:javascript
运行
复制
let range = some column of a spreadsheet
let row = range.getNextDataCell(SpreadsheetApp.Direction.DOWN);

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

如果在数据范围内有一个空白单元格,它就会停止。

参考

  1. Range.getNextDataCell()
票数 2
EN

Stack Overflow用户

发布于 2022-06-08 15:39:11

获得行宽

代码语言:javascript
运行
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72548255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档