首页 > 解决方案 > 将单元格中的电子邮件地址变成可点击的链接

问题描述

我有一列电子邮件地址,真的很想把它们变成可点击的链接。我仍然是一个菜鸟编码器,并试图解决这个问题。所以下面的代码是试图在谷歌应用脚​​本中记录一个宏。我需要它来引用当前单元格,将该单元格的电子邮件地址转换为指向它的链接,然后向下移动该列。

应该超级简单,取单元格A1的内容,变成单元格内容的链接,然后向下移动列表,再做一遍,直到完成整个列。

function emailing() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getActiveRangeList().setShowHyperlink(true);
   spreadsheet.getCurrentCell().setFormulaR1C1('=HYPERLINK("mailto:test@emailaddress.com","test@emailaddress.com")');

};

每封电子邮件都将转换为指向该电子邮件地址的链接。

标签: google-apps-scriptgoogle-sheets

解决方案


我已经测试了以下代码并成功地将每封电子邮件转换为超链接。假设您想在使用宏时转换所有这些,则此代码适用于您:

 function emailing() {
    var sheet = SpreadsheetApp.getActiveSheet();

    for(i=0; i<1048576; i++) {
      var gcells = sheet.getRange(6 + i, 6); //In my test i put the emails in the F column starting from the 6th row.
      var email = gcells.getValue();
      if (gcells.isBlank()) {
        break
      }
      gcells.setFormulaR1C1('=HYPERLINK("mailto:' + email + '","' + email + '")');
    } 
  }

我使用数字 1048576 作为 for 的限制,因为这是您可以拥有的最大行数,尽管当它使用空白单元格时它会中断。

如果您想要仅将您选择的单元格转换为超链接,然后更改所选单元格,则应使用 getActiveCell 函数 [1] 仅设置该值,然后使用 activate() 函数 [2] 更改选择到下一个单元格。

[1] https://developers.google.com/apps-script/reference/spreadsheet/sheet#getactivecell

[2] https://developers.google.com/apps-script/reference/spreadsheet/range#activate()


推荐阅读