访问活动工作表中的当前有效选择。选择是指用户在工作表中突出显示的单元格集,可以是相邻范围,也可以是不相邻范围。所选范围中的一个单元格是当前单元格,即用户当前关注的单元格。在 Google 表格界面中,当前单元格会以较深的边框突出显示。
const activeSheet = SpreadsheetApp.getActiveSheet(); const rangeList = activeSheet.getRangeList(['A1:B4', 'D1:E4']); rangeList.activate(); const 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 const ranges = selection.getActiveRangeList().getRanges(); for (let i = 0; i < ranges.length; i++) { console.log(`Active Ranges: ${ranges[i].getA1Notation()}`); } console.log(`Active Sheet: ${selection.getActiveSheet().getName()}`);
方法
| 方法 | 返回类型 | 简介 |
|---|---|---|
get | Range|null | 返回活动工作表中的所选范围,如果没有活动范围,则返回 null。 |
get | Range | 返回活动工作表中活动范围的列表;如果没有活动范围,则返回 null。 |
get | Sheet | 返回电子表格中的活动工作表。 |
get | Range|null | 返回在某个活动范围内选定的当前(突出显示)单元格;如果没有当前单元格,则返回 null。 |
get | Range|null | 从 current cell 和 active range 开始,并沿指定方向移动,返回一个调整后的范围,其中范围的相应边缘已移动以覆盖 next data cell,同时仍覆盖当前单元格。 |
详细文档
get Active Range()
返回活动工作表中的所选范围,如果没有活动范围,则返回 null。如果选择了多个范围,此方法仅返回最后选择的范围。
const selection = SpreadsheetApp.getActiveSpreadsheet().getSelection(); const activeRange = selection.getActiveRange();
返回
Range|null - 活跃范围。
授权
使用此方法的脚本需要获得以下一项或多项范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly -
https://www.googleapis.com/auth/spreadsheets
get Active Range List()
返回活动工作表中活动范围的列表;如果没有活动范围,则返回 null。
如果只选择了一个范围,此方法会像 get 调用一样运行。
const sheet = SpreadsheetApp.getActiveSheet(); // Returns the list of active ranges. const activeRangeList = sheet.getActiveRangeList();
返回
Range - 活跃范围的列表。
授权
使用此方法的脚本需要获得以下一项或多项范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly -
https://www.googleapis.com/auth/spreadsheets
get Active Sheet()
get Current Cell()
返回在某个活动范围内选定的当前(突出显示)单元格;如果没有当前单元格,则返回 null。
const selection = SpreadsheetApp.getActiveSpreadsheet().getSelection(); // Returns the current highlighted cell in the one of the active ranges. const currentCell = selection.getCurrentCell();
返回
Range|null - 当前单元格。
授权
使用此方法的脚本需要获得以下一项或多项范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly -
https://www.googleapis.com/auth/spreadsheets
get Next Data Range(direction)
从 current cell 和 active range 开始,沿指定方向移动,返回一个调整后的范围,其中范围的相应边缘已移动以覆盖 next data cell,同时仍覆盖当前单元格。如果沿 dimension 方向的有效范围不受限制,则返回原始有效范围。如果没有当前单元格或活动范围,则返回 null。这相当于在编辑器中选择一个范围,然后按 Ctrl+Shift+[arrow key]。
// Assume the active spreadsheet is blank. const ss = SpreadsheetApp.getActiveSpreadsheet(); const 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(), );
参数
| 名称 | 类型 | 说明 |
|---|---|---|
direction | Direction | 查找下一个数据区域边缘单元格的方向。 |
返回
Range|null - 包含数据单元格的调整后范围,如果没有选择,则为 null。
授权
使用此方法的脚本需要获得以下一项或多项范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly -
https://www.googleapis.com/auth/spreadsheets