如何将一列文本URL转换为Excel中的活动超链接?

时间:2010-04-07 20:30:03

标签: excel-2007 hyperlink

我在Excel中有一个列,其中包含所有网站网址值。我的问题是我想将网址值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的URL。有没有办法可以创建活动超链接到所有单元格而无需编写宏。

22 个答案:

答案 0 :(得分:290)

如果您不想制作宏,并且只要不介意其他列,那么只需在您的网址列旁边创建一个新列。

在公式=HYPERLINK(A1)中的新列类型中(将A1替换为您感兴趣的任何单元格)。然后将公式复制到200个条目的其余部分。

注意:如果单元格A1包含长度超过255个字符的字符串,则此解决方案不起作用。它会导致#VALUE!错误

答案 1 :(得分:83)

按照此处创建宏:

在Microsoft Excel的“工具”菜单上,指向“宏”,然后单击“Visual Basic编辑器”。 在“插入”菜单上,单击“模块”。 将此代码复制并粘贴到模块的代码窗口中。 它会自动命名为HyperAdd。

Sub HyperAdd()

    'Converts each text hyperlink selected into a working hyperlink

    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell

End Sub

完成粘贴宏后,单击“文件”菜单上的“关闭并返回到Microsoft Excel”。

然后选择所需的单元格并单击宏并单击“运行”。

注意请勿选择整栏!只选择您希望更改为可点击链接的单元格,否则您将最终进入无限循环并且必须重新启动Excel! 完成!

答案 2 :(得分:23)

这是我发现的一种方式。我在使用Excel 2011的Mac上。 如果列B具有您想要成为超链接的文本值,请将此公式放在单元格C1(或D1或其他任何内容中,只要它是一个空闲列):=HYPERLINK(B1,B1) 这将插入一个超链接,其中该位置为链接文本,“友好名称”为链接文本。如果您有另一列具有每个链接的友好名称,您也可以使用它。 然后,如果您不想看到它,可以隐藏文本列。

如果您有某个ID的列表,并且所有网址都是http://website.com/folder/ID,例如:

A1  | B1
101 | http://website.com/folder/101
102 | http://website.com/folder/102
103 | http://website.com/folder/103
104 | http://website.com/folder/104

您可以使用类似=HYPERLINK("http://website.com/folder/"&A1,A1)的内容,但您不需要网址列表。那是我的情况并且工作得很好。

根据这篇文章:http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/此方法也适用于Excel 2007。

答案 3 :(得分:18)

好的,这是一个很好的解决方案,但我无法弄清楚如何让Excel将一列URL作为批量超链接进行评估。

  1. 创建公式="=hyperlink(""" & A1 & """)"
  2. 向下拖动
  3. 复制新公式列
  4. 仅在原始列上粘贴特殊值
  5. 突出显示列,单击 Ctrl - H (替换),查找=并将其替换为=(以某种方式强制重新评估细胞)。
  6. 单元格现在应该可以作为超链接点击。如果你想要蓝色/下划线样式,那么只需突出显示所有单元格并选择超链接样式。
  7. 单独的超链接样式不会转换为可点击的链接,并且“插入超链接”对话框似乎无法将文本用作批量的一堆单元格的地址。除此之外, F2 输入通过所有细胞都可以做到,但这对很多细胞来说都是乏味的。

答案 4 :(得分:16)

相当简短的列表非常简单:

  1. 双击网址
  2. 的框
  3. 输入
  4. 你有链接;)

答案 5 :(得分:6)

此方法适用于我使用超链接功能:

=HYPERLINK("http://"&B10,B10)

其中B10是包含URL文本版本的单元格(在此示例中)。

答案 6 :(得分:4)

在Windows上使用Excel 2007,我发现这些步骤最简单;

  1. 选择包含非有效网址的单元格
  2. 复制
  3. 粘贴为超链接

答案 7 :(得分:3)

我很震惊Excel无法自动执行此操作,因此这是我的解决方案,希望对其他人有用

  1. 将整列复制到剪贴板
  2. 在您的Chrome或Firefox上打开它

data:text/html,<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

  1. 在您刚刚在浏览器中打开的页面上粘贴该列,然后按“ Linkify”
  2. 将结果从标签复制到Excel上的列

代替第二步,可以使用以下页面,首先,单击“运行代码段”,然后将其粘贴到该列上

<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

答案 8 :(得分:2)

试试这个:

= HYPERLINK(&#34; mailto:&#34;&amp; A1,A1)

将A1替换为您的电子邮件地址单元格。

答案 9 :(得分:2)

对我来说,我只是将整个包含文本格式的URL的列复制到另一个应用程序(比如Evernote)中,当它们粘贴在那里时,它们就变成了链接,然后我将它们复制回Excel。

这里唯一需要确保您复制的数据与其余列对齐。

答案 10 :(得分:1)

您可以将公式=HYPERLINK(<your_cell>,<your_cell>)插入相邻的单元格并将其一直拖到底部。这将为您提供包含所有链接的列。现在,您可以通过单击标题选择原始列,单击鼠标右键,然后选择Hide

答案 11 :(得分:1)

  1. 使用公式= HYPERLINK()创建超链接的临时新列
  2. 将该列复制到Microsoft Word(仅在Word运行后复制到剪贴板)。
  3. 将所有内容复制到新的word文档中(按Ctrl + A,然后按Ctrl + C)。
  4. 粘贴到Excel中,替换文本的原始列。用公式删除临时列。

答案 12 :(得分:1)

我有一个列表,可以输入到我希望进行热链接的url中。 例如,我在A列中输入了问题编号(即2595692、135171),并且我想将这些问题编号转换为热链接并仅显示问题编号。

因此,我建立了一个指向A列的纯文本超链接,并将其复制为我所有的问题编号:

=“ = HYPERLINK(”&“”“ http”“&”“:”“”&“”&“&”&“”“ // stackoverflow.com/questions/"&A1&”“”“”“ ,“&A1&”)“

然后我复制-将文本超链接的此值粘贴到另一列。

您最终看到一列类似于以下内容的文本:

= HYPERLINK(“ http”&“:”&“ // stackoverflow.com/questions/2595692",2595692)

然后我选择了这些粘贴的项目并运行下面的F2Entry宏:

Sub F2Enter()
Dim cell As Range
Application.Calculation = xlCalculationManual
For Each cell In Selection
    cell.Activate
    cell = Trim(cell)
Next cell
Application.Calculation = xlCalculationAutomatic
EndSub

然后我删除了文本输入列和A列。

我最后得到一列热链接的问题编号:

2595692

135171

欢呼

答案 13 :(得分:1)

我发现如果超链接不包含http://,因为它们链接到本地​​位置,这里的方法都不起作用。

我还想要愚弄脚本,因为用户无法自己维护脚本,我也无法使用。

如果它们包含一个点而没有空格,它将只在选定范围内的单元格上运行。它最多只能运行10,000个单元格。

Sub HyperAdd()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
        If xCell.Formula = "" Or InStr(xCell.Formula, ".") = NotPresent Then
        'Do nothing if the cell is blank or contains no dots
        Else
            If InStr(xCell.Formula, " ") <> 0 Then
                CellsWithSpaces = CellsWithSpaces & ", " & Replace(xCell.Address, "$", "")
                 GoTo Nextxcell
            End If

            If InStr(xCell.Formula, "http") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "http://" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        End If
        i = i + 1
        If i = 10000 Then Exit Sub
Nextxcell:
      Next xCell
    If Not CellsWithSpaces = "" Then
        MsgBox ("Please remove spaces from the following cells:" & CellsWithSpaces)
    End If
Application.ScreenUpdating = True
End Sub

答案 14 :(得分:1)

将URL放入HTML表格,将HTML页面加载到浏览器中,复制该页面的内容,粘贴到Excel中。此时,URL将保留为活动链接。

(Jim Gordon Mac MVP)[{3}}

提出了http://answers.microsoft.com/en-us/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-excel-2008-a-list-of/c5fa2890-acf5-461d-adb5-32480855e11e的解决方案

我发现它有效。

我有这些网址:

  

http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]   https://twitter.com/keeseter/status/578350771235872768/photo/1   https://instagram.com/p/ys5ASPCDEV/   https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg   https://twitter.com/ranadotson/status/539485028712189952/photo/1   https://instagram.com/p/0OgdvyxMhW/

我将它们放入HTML文件(links.html)中,如下所示:

<table>
<tr><td><a href="https://twitter.com/keeseter/status/578350771235872768/photo/1">https://twitter.com/keeseter/status/578350771235872768/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/ys5ASPCDEV/">https://instagram.com/p/ys5ASPCDEV/</a></td></tr>
<tr><td><a href="https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg">https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg</a></td></tr>
<tr><td><a href="https://twitter.com/ranadotson/status/539485028712189952/photo/1">https://twitter.com/ranadotson/status/539485028712189952/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/0OgdvyxMhW/">https://instagram.com/p/0OgdvyxMhW/</a></td></tr>
</table>

然后我将links.html加载到浏览器中,复制,粘贴到Excel中,链接处于活动状态。

答案 15 :(得分:1)

谢谢Cassiopeia的代码。我改变他的代码以使用本地地址并且对他的条件做了很少的改变。我删除了以下条件:

  1. http:/更改为file:///
  2. 删除所有类型的空白条件
  3. 将10k细胞范围条件更改为100k
  4. Sub HyperAddForLocalLinks()
    Dim CellsWithSpaces As String
        'Converts each text hyperlink selected into a working hyperlink
        Application.ScreenUpdating = False
        Dim NotPresent As Integer
        NotPresent = 0
    
        For Each xCell In Selection
            xCell.Formula = Trim(xCell.Formula)
                If InStr(xCell.Formula, "file:///") <> 0 Then
                    Hyperstring = Trim(xCell.Formula)
                Else
                    Hyperstring = "file:///" & Trim(xCell.Formula)
                End If
    
                ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring
    
            i = i + 1
            If i = 100000 Then Exit Sub
    Nextxcell:
          Next xCell
        Application.ScreenUpdating = True
    End Sub
    

答案 16 :(得分:1)

对于使用Excel 2016登陆此处的任何人,您只需突出显示该列,然后点击Hyperlink框中Home功能区上的Styles标签。

enter image description here

编辑:不幸的是,这只会更新单元格样式,而不是函数。

答案 17 :(得分:0)

在 Mac 上,一个非常简单的方法是在 Excel 中选择整个电子表格,复制,启动 Numbers,粘贴,然后全选,复制并粘贴回 Excel。

答案 18 :(得分:0)

如果您将文本内容复制到新列并使用:

=HYPERLINK("http://"&B10,B10) 

在原始专栏上。然后使用$作为列,使其如下所示:

=HYPERLINK("http://"&$B10,$B10)

这是我在Windows 7上使用Excel 2010的唯一方法。您可以复制公式。

答案 19 :(得分:-1)

这里最简单的方式

  • 突出显示整栏
  • 点击&#39;插入&#39;&#39;
  • 点击&#39;&#39;超链接&#39;&#39;
  • 点击&#39;&#39;放在此文档中&#39;&#39;
  • 点击确定
  • 多数民众赞成

答案 20 :(得分:-3)

Excel 2010中最简单的方法: 选择包含URL文本的列,然后从“主页”选项卡中选择“超链接样式”。 列中的所有URL现在都是超链接。

同时双击URL文本末尾的每个单元格并添加空白或只输入也将生成超链接。与您在MS Outlook电子邮件中创建URL链接的方式类似。

答案 21 :(得分:-5)

有一种非常简单的方法可以做到这一点。创建一个超链接,然后使用格式刷来复制格式。它将为每个项目创建一个超链接。