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

问题描述 投票:239回答:21

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

excel-2007 hyperlink
21个回答
293
投票

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

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

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


2
投票

试试这个:

= HYPERLINK(“mailto:”和A1,A1)

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


2
投票

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

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


1
投票

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


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

1
投票

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

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提出了解决方案(Jim Gordon Mac MVP)[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/ https://instagram.com/p/1nynTiiLSb/

我将它们放入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中,并且链接处于活动状态。


1
投票

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

  1. http:/改为file:///
  2. 删除了所有类型的空白条件
  3. 将10k细胞范围条件改为100k

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

1
投票

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

enter image description here

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


1
投票

我有一个数字列表,我想要热链接到网址。例如,我有一个带有问题编号的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

等等

干杯


0
投票

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

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

在你原来的专栏上。然后使用$作为列,使它看起来像这样:

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

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


-1
投票

这里最简单的方法

  • 突出显示整列
  • 点击“插入”
  • 点击''超链接''
  • 点击“此文档中的位置”
  • 点击确定
  • 就这样

84
投票

在此处创建宏:

在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!完成!


-3
投票

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

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


-5
投票

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


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。


18
投票

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

  1. 创建一个公式,="=hyperlink(""" & A1 & """)"
  2. 拖累
  3. 复制新公式列
  4. 仅在原始列上粘贴特殊值
  5. 突出显示列,单击Ctrl-H(替换),用=查找和替换=(以某种方式强制重新评估单元格)。
  6. 现在,单元格可以作为超链接进行单击。如果您想要蓝色/下划线样式,则只需突出显示所有单元格并选择超链接样式。

单独的超链接样式不会转换为可单击的链接,并且“插入超链接”对话框似乎无法将文本用作批量的一堆单元格的地址。除此之外,F2和Enter通过所有细胞都可以做到,但这对很多细胞来说都是乏味的。


16
投票

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

  1. 双击网址所在的框
  2. 输入

你有你的链接;)


6
投票

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

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

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


5
投票

如果adding an extra column with the hyperlinks不是一个选项,另一种方法是使用外部编辑器将你的超链接包含在=hyperlink("")中,以获得=hyperlink("originalCellContent")

如果您有Notepad ++,这是一个可以用来半自动执行此操作的配方:

  • 将地址列复制到Notepad ++
  • 按住ALT-SHIFT键,将光标从左上角延伸到右下角,然后键入=hyperlink("。这会在每个条目的开头添加=hyperlink("
  • 打开“替换”菜单(Ctrl-H),激活正则表达式(ALT-G),并用$替换"\)(行尾)。这会在每一行的末尾添加一个闭合引号和一个闭括号(需要在激活正则表达式时使用\进行转义)。
  • 在Excel中粘贴数据。实际上,只需复制数据并选择希望数据结束的列的第一个单元格。

4
投票

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

  1. 选择具有非活动URL的单元格
  2. 复制
  3. 粘贴为超链接

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>
© www.soinside.com 2019 - 2024. All rights reserved.