在onEdit()activeCell触发器后获取列中第一个单元格的内容

时间:2017-08-02 15:22:57

标签: google-apps-script google-sheets

我有一个SpreadSheet,其A1-> J1为TITLES ex。(ProductName,Price等)。现在我的脚本有效但我在获取第一行的内容时遇到问题。

假设我在A20中添加了一个新条目,现在activeCell是A20,但我怎么能得到A1哪个是标题并用activeCell打印出来。 A1,B1,C1所有这些都是标题,所以当我编辑B10时,我应该打印B10 + B1。

这是我的代码:

  var sheet = SpreadsheetApp.getActiveSheet();
  var editRange = sheet.getActiveRange();
  var editRow = editRange.getRow();
  var editCol = editRange.getColumn();

当我编辑某些内容时,我会得到A = 1,B = 2,C = 3等数字。 我只想要B1的内容而不是列号。这可能吗?

1 个答案:

答案 0 :(得分:2)

将方法getValue()应用于列中的顶部单元格。例如,

function onEdit(e) {
  var topCell = e.range.offset(1-e.range.rowStart, 0).getValue();
  Browser.msgBox(topCell);
}

此脚本使用event object将API调用数量减少到两个(offsetgetValue),其余信息直接从对象中提取。对于诸如getActiveSheetgetActiveRangegetRowgetColumn之类的方法调用,这在性能方面更为可取......

1-e.range.rowStart偏移意味着从已编辑的单元格向上移动到第一行。