【问题标题】:How do I select the first empty row in google spreadsheets/scripts如何选择谷歌电子表格/脚本中的第一个空行
【发布时间】:2015-01-25 12:39:07
【问题描述】:

所以我应该首先说我是 Javascript/编程新手。我了解很多,但在实际编写它时并不真正知道我在做什么。

我正在尝试使用谷歌脚本,以便当我打开电子表格时,光标从最后一行开始,这样我就可以使用键盘大师和苹果脚本的组合来输入文本。问题是,我似乎无法得到任何工作。我已经尝试使用他们在这里拥有的东西:Faster way to find the first empty row 但似乎没有任何东西实际上可以正常工作。该函数运行没有问题,但它实际上从来没有做任何事情。我已经使用了建议的功能以及“getLastrow”的一些开发人员功能,但没有任何效果。

我想我已经完成了第二部分,为了在我打开文档时让它工作,我设置了一个“打开时”触发器,但在我让 main 函数工作之前我无法实际测试它。

非常感谢,

【问题讨论】:

  • ...it never actually does anything. 你希望它做什么?它正在获取对第一个空行(实际上是 A 列中的空单元格)的引用,以供脚本使用。它不会在 UI 上进行任何可见的更改。
  • 哦,我有点认为这可能是问题所在,但当时太迷失了,没有意识到这一点。有没有办法让谷歌脚本选中该框以允许在其中输入信息?

标签: google-apps-script google-sheets


【解决方案1】:

The referenced questionscripts 提供了对电子表格中第一个空行的引用。 (...虽然其中一些解决方案会在 A 列中找到第一个空单元格,这不一定是空 。但我离题了。)

在可以访问用户界面的电子表格附加脚本中,您可以通过以下几个功能影响电子表格的活动视图:

使用您希望在活动电子表格中识别“空行”的任何技术,此函数将使用.setActiveSelection()将选择移动到它:

/**
 * Place the current user's cursor into the first cell of the first empty row.
 */
function selectFirstEmptyRow() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.setActiveSelection(sheet.getRange("A"+getFirstEmptyRowWholeRow()))
}

getFirstEmptyRowWholeRow() 函数,如果您好奇的话:

/**
 * Mogsdad's "whole row" checker.
 */
function getFirstEmptyRowWholeRow() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  var row = 0;
  for (var row=0; row<values.length; row++) {
    if (!values[row].join("")) break;
  }
  return (row+1);
}

【讨论】:

  • 关于“整行”检查器:原生 getLastRow()(当然是 +1) 怎么样?它实际上不会返回 OP 正在寻找的东西吗?除非工作表中确实存在不连续性,否则您的解决方案将指向这个“洞”……您怎么看?
  • 这当然是重点:"first empty" !== "bottom of data + 1"。由于在引用的问题中已经做出了这种区分,我认为他想要他所要求的。但是,如果最后一行是目标,则 selectFirstEmptyRow() 只需调用它即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多