GAS:难以测试以查看activecell是否具有特定的范围名称

时间:2017-04-28 19:09:45

标签: google-apps-script named-ranges

我有一个源单元格,其范围名称为" source"。
我有一些目标(非相邻)单元格,其范围名称为" target1"," target2"," target3"。

如果电池"来源"如果改变了,我希望将它的值复制到3个目标单元格中​​。

我在第一道障碍中磕磕绊绊,我无法确定如何测试我是否正在编辑"来源"细胞

所有文档似乎都是关于命名范围而不是使用它们。

到目前为止,我有......

background-image
修改后的代码:

function onEdit()
{
   var sh = SpreadsheetApp.getActiveSheet();
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var range = ss.getActiveRange();
   var C = range.getColumnIndex();
   var a = sh.getActiveCell();

   if( range == "LXbar1" )
   {
      SpreadsheetApp.getUi().alert('You are HERE!');
   }
}

1 个答案:

答案 0 :(得分:0)

不要在onEdit触发器中使用Active元素,使用内置的event object,它将确保在编辑发生时它始终使用实际选择的单元格。

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var eventRange = e.range;
  var sourceRange = ss.getRangeByName("source");
  var eventRangeA1 = eventRange.getSheet().getName() + "!" + eventRange.getA1Notation();
  var sourceRangeA1 = sourceRange.getSheet().getName() + "!" + sourceRange.getA1Notation();

  if (eventRangeA1 === sourceRangeA1) {
    SpreadsheetApp.getUi().alert("You are HERE!");
  } 
};