Class Selection

选择

访问当前工作表中当前活动的内容。所选项就是 已在工作表中突出显示,可以是不相邻的范围。所选内容中的一个单元格是 当前单元格:用户的当前焦点所在的位置。当前单元格以 较深的边框。

var activeSheet = SpreadsheetApp.getActiveSheet();
var rangeList = activeSheet.getRangeList(['A1:B4', 'D1:E4']);
rangeList.activate();

var selection = activeSheet.getSelection();
// Current Cell: D1
console.log('Current Cell: ' + selection.getCurrentCell().getA1Notation());
// Active Range: D1:E4
console.log('Active Range: ' + selection.getActiveRange().getA1Notation());
// Active Ranges: A1:B4, D1:E4
var ranges =  selection.getActiveRangeList().getRanges();
for (var i = 0; i < ranges.length; i++) {
  console.log('Active Ranges: ' + ranges[i].getA1Notation());
}
console.log('Active Sheet: ' + selection.getActiveSheet().getName());

方法

方法返回类型简介
getActiveRange()Range返回当前工作表中的所选范围,如果没有有效范围,则返回 null
getActiveRangeList()RangeList返回活动工作表中的活动范围列表,如果没有活动范围,则返回 null 范围。
getActiveSheet()Sheet返回电子表格中的活动工作表。
getCurrentCell()Range返回在其中一个有效范围内选择的当前(突出显示)单元格;如果没有当前单元格,则返回 null
getNextDataRange(direction)Rangecurrent cellactive range开始 沿给定方向移动,返回调整后的范围,其中包含 范围已移动,以覆盖next data cell,同时仍然 覆盖当前单元格。

详细文档

getActiveRange()

返回当前工作表中的所选范围,如果没有有效范围,则返回 null。如果 选择了多个范围 此方法仅返回最后选择的范围。

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
var activeRange = selection.getActiveRange();

返回

Range - 有效范围。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getActiveRangeList()

返回活动工作表中的活动范围列表,如果没有活动范围,则返回 null 范围。

如果选择一个范围,则其行为类似于 getActiveRange() 调用。

var sheet = SpreadsheetApp.getActiveSheet();
// Returns the list of active ranges.
var activeRangeList = sheet.getActiveRangeList();

返回

RangeList - 有效范围的列表。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getActiveSheet()

返回电子表格中的活动工作表。

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
var activeSheet = selection.getActiveSheet();

返回

Sheet - 电子表格中的有效工作表。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getCurrentCell()

返回在其中一个有效范围内选择的当前(突出显示)单元格;如果没有当前单元格,则返回 null

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
// Returns the current highlighted cell in the one of the active ranges.
var currentCell = selection.getCurrentCell();

返回

Range - 当前单元格。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getNextDataRange(direction)

current cellactive range开始 沿给定方向移动,返回调整后的范围,其中包含 范围已移动,以覆盖next data cell,同时仍然 覆盖当前单元格。如果有效范围沿方向的 dimension 是无界限的,则系统会返回原始的有效范围。如果没有当前单元格 或有效范围,则返回 null。这相当于在 编辑器,然后按 Ctrl+Shift+[arrow key]

// Assume the active spreadsheet is blank.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

// Makes C3 the current cell and C3:E5 the active range.
sheet.getRange('C3:E5').activate();
// Logs 'C1:E3'
console.log(SpreadsheetApp.getSelection()
                          .getNextDataRange(SpreadsheetApp.Direction.UP)
                          .getA1Notation());

参数

名称类型说明
directionDirection查找下一个数据区域边缘单元的方向。

返回

Range - 包含数据单元格的调整后范围,如果没有数据单元格,则为 null 选择。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets