我在excel中有一个列,其中包含所有网站URL值。我的问题是我想将网址值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的URL。有没有办法我可以创建活动超链接到所有单元格而无需编写宏。
如果您不想制作宏,并且只要不介意其他列,则只需在您的网址列旁边创建一个新列。
在公式=HYPERLINK(A1)
中的新列类型中(将A1替换为您感兴趣的任何单元格)。然后将公式复制到200个条目的其余部分。
注意:如果单元格A1包含长度超过255个字符的字符串,则此解决方案不起作用。它导致#VALUE!
错误
试试这个:
= HYPERLINK(“mailto:”和A1,A1)
将A1替换为您的电子邮件地址单元格文本。
对我来说,我只是将具有文本格式的URL的整个列复制到另一个应用程序(比如Evernote)中,当它们粘贴在那里时,它们就变成了链接,然后我将它们复制回Excel。
这里唯一需要确保您复制的数据与其余列对齐。
您可以将公式=HYPERLINK(<your_cell>,<your_cell>)
插入相邻单元格并将其一直拖到底部。这将为您提供包含所有链接的列。现在,您可以通过单击标题选择原始列,右键单击,然后选择Hide
。
我发现如果超链接不包含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
将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中,并且链接处于活动状态。
谢谢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
我有一个数字列表,我想要热链接到网址。例如,我有一个带有问题编号的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
等等
干杯
如果将文本内容复制到新列并使用:
=HYPERLINK("http://"&B10,B10)
在你原来的专栏上。然后使用$
作为列,使它看起来像这样:
=HYPERLINK("http://"&$B10,$B10)
这是它在Windows 7上使用Excel 2010的唯一方法。您可以复制公式。
这里最简单的方法
在此处创建宏:
在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!完成!
Excel 2010中最简单的方法:选择包含URL文本的列,然后从“主页”选项卡中选择“超链接样式”。列中的所有URL现在都是超链接。
同时双击URL文本末尾的每个单元格并添加空白或只输入也将生成超链接。与您在MS Outlook电子邮件中创建URL链接的方式类似。
有一种非常简单的方法可以做到这一点。创建一个超链接,然后使用格式刷来复制格式。它将为每个项目创建一个超链接。
这是我发现的一种方式。我在使用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。
好的,这是一个很好的解决方案,但我无法弄清楚如何让Excel将一列URL作为批量超链接进行评估。
="=hyperlink(""" & A1 & """)"
=
查找和替换=
(以某种方式强制重新评估单元格)。单独的超链接样式不会转换为可单击的链接,并且“插入超链接”对话框似乎无法将文本用作批量的一堆单元格的地址。除此之外,F2和Enter通过所有细胞都可以做到,但这对很多细胞来说都是乏味的。
相当简短的列表非常简单:
你有你的链接;)
这个方法适用于我使用超链接功能:
=HYPERLINK("http://"&B10,B10)
其中B10
是包含URL文本版本的单元格(在此示例中)。
如果adding an extra column with the hyperlinks不是一个选项,另一种方法是使用外部编辑器将你的超链接包含在=hyperlink("
和")
中,以获得=hyperlink("originalCellContent")
如果您有Notepad ++,这是一个可以用来半自动执行此操作的配方:
=hyperlink("
。这会在每个条目的开头添加=hyperlink("
。$
替换"\)
(行尾)。这会在每一行的末尾添加一个闭合引号和一个闭括号(需要在激活正则表达式时使用\
进行转义)。使用Windows上的Excel 2007,我发现这些步骤最简单;
我震惊的是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>