无论在该范围内选择了哪个单元格,getActiveCell()始终返回左上角的单元格

时间:2013-09-10 16:32:04

标签: google-apps-script google-sheets

以下代码始终返回对左上角单元格的引用,而不管选择的实际角单元格如何。

var actvC = SpreadsheetApp.getActiveRange();
var txt_actvC = actvC.getA1Notation();
actvC = SpreadsheetApp.getActiveSheet().getActiveCell();
txt_actvC = actvC.getA1Notation();

无论如何确定实际选定的细胞?

3 个答案:

答案 0 :(得分:2)

解决方法

function readRows() {
  var s = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = s.getActiveSheet();
  var active = sheet.getActiveCell().getA1Notation();
  var sheet1 = s.getSheetName();

  if (sheet1 == "Sheet1"){

  Logger.log(active);

  }
};

getActiveCell()当前不适用于getSheets()[i]或getSheetbyName()

答案 1 :(得分:2)

现在有一个getCurrentCell()返回当前选定的单元格。

返回活动工作表中的当前单元格;如果没有当前单元格,则返回null。当前单元格是在Google表格用户界面中具有焦点的单元格,并以黑色边框突出显示。当前单元数不超过一个。当用户选择一个或多个单元格范围时,所选单元格之一就是当前单元格。

示例:

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

答案 2 :(得分:0)

是的,您似乎是正确的,即使您从任何其他角落中选择了范围,有效范围内的活动单元格也会位于左上角。你的用例是什么?

function getCell() {
  var actvC = SpreadsheetApp.getActiveRange();
  var txt_actvC = actvC.getA1Notation();
  Logger.log(txt_actvC);

  actvC = SpreadsheetApp.getActiveSheet().getActiveCell();
  txt_actvC = actvC.getA1Notation();
  Logger.log(txt_actvC);
}

结果:enter image description here