0

我正在尝试获取一个自动脚本,以检查“D9”右侧的列是否为空白,如果全部为空白,则隐藏该行。我的想法是使用 for 循环进行迭代并逐行检查并检查,因此将范围内的 Row 参数替换为 'i' 但似乎出于某种原因,如果我放置 A1notation 它可以工作,但不能使用 'row'和“列”参数。几天前我刚刚开始搞砸这个,所以我确定我做错了什么,所以如果你能指出我正确的方向并指出我为什么这不起作用,那就太好了:)

所以这有效:

function SelectLastColumn() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("D9").activate();
var currentCell = spreadsheet.getCurrentCell();
spreadsheet.getSelection()
.getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();

这不会:

function SelectLastColumn() { var spreadsheet =
SpreadsheetApp.getActive(); spreadsheet.getRange(9,4).activate(); var
currentCell = spreadsheet.getCurrentCell(); 
spreadsheet.getSelection()
.getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
4

1 回答 1

1

关于上面脚本有效而下面脚本无效的原因,这个答案怎么样?在您的脚本中,spreadsheetofvar spreadsheet = SpreadsheetApp.getActive();是作为对象的电子表格。当getRange()用于这种情况时,需要注意以下几点。

  • getRange()被 a1Notation 使用时,它可以用于SpreadsheetSheet
  • getRange()被行和列使用时,它只能用于Sheet

从以上几点来看,对于您的脚本,当您的脚本如下修改时,您的两个脚本都可以使用。

从 :

var spreadsheet = SpreadsheetApp.getActive();

至 :

var spreadsheet = SpreadsheetApp.getActiveSheet();

参考 :

如果我误解了你的问题,我很抱歉。

于 2018-06-02T00:56:25.503 回答