我在Excel中有一个列,其中包含所有网站网址值。我的问题是我想将网址值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的URL。有没有办法可以创建活动超链接到所有单元格而无需编写宏。
答案 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作为批量超链接进行评估。
="=hyperlink(""" & A1 & """)"
=
并将其替换为=
(以某种方式强制重新评估细胞)。单独的超链接样式不会转换为可点击的链接,并且“插入超链接”对话框似乎无法将文本用作批量的一堆单元格的地址。除此之外, F2 和输入通过所有细胞都可以做到,但这对很多细胞来说都是乏味的。
答案 4 :(得分:16)
相当简短的列表非常简单:
你有链接;)
答案 5 :(得分:6)
此方法适用于我使用超链接功能:
=HYPERLINK("http://"&B10,B10)
其中B10
是包含URL文本版本的单元格(在此示例中)。
答案 6 :(得分:4)
在Windows上使用Excel 2007,我发现这些步骤最简单;
答案 7 :(得分:3)
我很震惊Excel无法自动执行此操作,因此这是我的解决方案,希望对其他人有用
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>
代替第二步,可以使用以下页面,首先,单击“运行代码段”,然后将其粘贴到该列上
<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)
答案 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的代码。我改变他的代码以使用本地地址并且对他的条件做了很少的改变。我删除了以下条件:
http:/
更改为file:///
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)
答案 17 :(得分:0)
在 Mac 上,一个非常简单的方法是在 Excel 中选择整个电子表格,复制,启动 Numbers,粘贴,然后全选,复制并粘贴回 Excel。
答案 18 :(得分:0)
如果您将文本内容复制到新列并使用:
=HYPERLINK("http://"&B10,B10)
在原始专栏上。然后使用$
作为列,使其如下所示:
=HYPERLINK("http://"&$B10,$B10)
这是我在Windows 7上使用Excel 2010的唯一方法。您可以复制公式。
答案 19 :(得分:-1)
这里最简单的方式
答案 20 :(得分:-3)
Excel 2010中最简单的方法: 选择包含URL文本的列,然后从“主页”选项卡中选择“超链接样式”。 列中的所有URL现在都是超链接。
同时双击URL文本末尾的每个单元格并添加空白或只输入也将生成超链接。与您在MS Outlook电子邮件中创建URL链接的方式类似。
答案 21 :(得分:-5)
有一种非常简单的方法可以做到这一点。创建一个超链接,然后使用格式刷来复制格式。它将为每个项目创建一个超链接。