无法通过changeType获得单元格值" OTHER"

时间:2016-12-23 00:56:51

标签: javascript google-apps-script google-sheets

我正在尝试使用带有电子表格的Google Apps脚本获取OTHER changeType上某些单元格的值。如果changeTypeEDITFORMAT,则可以正常工作,但{I}之后的类型OTHER则无效(排序)。

有人能指出我正确的方向吗?

var ui = SpreadsheetApp.getUi();

function onChange(e) {

  var range = SpreadsheetApp.getActiveSheet().getRange("A30:A32");
  var numRows = range.getNumRows();

    if (e.changeType == "OTHER") {

    for (var i = 1; i <= numRows; i++) {
      var currentValue = range.getCell(i,1).getValue();

      ui.alert(currentValue);
    }

  }

}

1 个答案:

答案 0 :(得分:2)

“更改时”没有简单的触发器(函数名onChange没有特殊含义),因此应该为此函数设置可安装的触发器。在这种情况下,它工作正常。我建议不要使用已弃用的Ui服务,也不要在循环中逐个获取值。我的版本:

function oc(e) {
  var range = SpreadsheetApp.getActiveSheet().getRange("A30:A32");
  if (e.changeType == "OTHER") {
    var currentValues = range.getValues();       // get all values at once
    var str = currentValues.map(function (row) {
      return row[0];                             // flatten the double array
    }).join(', ');                               // join in comma-delimited string
    Browser.msgBox(str);
  }
}