Google Apps Script 中的 getActiveCell 和 getCurrentCell 有什么区别?

Str*_*ajk 5 google-sheets google-apps-script

我已经阅读了几次定义,但我仍然不明白其中的区别。

getActiveCell:范围

getCurrentCell:范围

  • https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getCurrentCell()
  • 摘要:如果没有当前单元格,则返回活动工作表中的当前单元格或 null。
  • 说明:返回活动工作表中的当前单元格,如果没有当前单元格,则返回 null。当前单元格是在 Google 表格 UI 中具有焦点的单元格,并以黑色边框突出显示。永远不会有超过一个当前单元格。当用户选择一个或多个单元格范围时,选择中的单元格之一就是当前单元格。

在 getActiveCell 的文档中有这个注释:(复制粘贴,包括语法错误)

最好使用 getCurrentCell(),它返回当前突出显示的单元格。

这并没有让它更清楚

Raf*_*rmo 17

回答:

getCurrentCell()返回在 Sheets UI 中由黑色边框看到的突出显示的单元格,而getActiveCell()返回所选范围的左上角。

例子:

例如,假设您在 Sheet: 中突出显示了一个范围B2:E10。在您单击B2并向下拖动到 的情况下E10

在此处输入图片说明

在脚本编辑器中运行以下代码:

function getCells() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
  console.log(sheet.getActiveCell().getA1Notation())
  console.log(sheet.getCurrentCell().getA1Notation())
}
Run Code Online (Sandbox Code Playgroud)

您将在日志中看到getActiveCell()和 都getCurrentCell()返回B2.

但是,在相反的情况下,您单击E10并向上拖动到B2

在此处输入图片说明

运行相同的代码后,您将看到getActiveCell()仍然返回B2,但现在getCurrentCell()返回E10

我希望这对你有帮助!