Class Selection

选择

访问当前工作表中的当前所选内容。所选项是用户在工作表中突出显示的一组单元格,可以是不相邻的范围。所选项中的一个单元格是当前单元格,即用户的当前焦点。当前单元格在 Google 表格界面中使用较暗的边框突出显示。

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