下一个单元格上的自动可点击电子邮件地址。应用程序脚本

Automatic clickable email address on next cell. Apps Script

我希望我的电子表格在我输入电子邮件地址的位置旁边的单元格中使用 mailto 自动创建一个可点击的电子邮件地址。

我的代码是这样的:

function onEdit3() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 4 ) { //checks the column
      var nextCell = r.offset(0, 1);
      if( nextCell.getValue() === '' ) //is empty?
        var merge = "mailto:"+r;
        nextCell.setValue(merge);
    }
  }
}

问题是我在下一个单元格中得到的是:mailto:Range

我知道这很容易解决,但我想不通。

谢谢, 罗德里戈

问题是您没有通过调用 r.getValues() 获取单元格的值:

var merge = "mailto:"+r.getValues();

所以代码应该是:

function onEdit3() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 0 ) { //checks the column
      var nextCell = r.offset(0, 1);
      if( nextCell.getValue() === '' ) //is empty?
        var merge = "mailto:"+r.getValues();
        nextCell.setValue(merge);
    }
  }
}