【发布时间】:2023-03-18 05:01:01
【问题描述】:
我在 excel 中有一个列,其中包含所有网站 url 值。我的问题是我想将 url 值转换为活动链接。该列中有大约 200 个条目,所有单元格中都有不同的 url。有没有一种方法可以在不编写宏的情况下创建指向所有单元格的活动超链接。
【问题讨论】:
标签: excel-2007 hyperlink
我在 excel 中有一个列,其中包含所有网站 url 值。我的问题是我想将 url 值转换为活动链接。该列中有大约 200 个条目,所有单元格中都有不同的 url。有没有一种方法可以在不编写宏的情况下创建指向所有单元格的活动超链接。
【问题讨论】:
标签: excel-2007 hyperlink
如果您不想制作宏并且不介意添加一列,那么只需在您的 URL 列旁边创建一个新列。
在公式=HYPERLINK(A1) 的新列中输入(将A1 替换为您感兴趣的任何单元格)。然后将公式复制到其余 200 个条目中。
注意:如果单元格 A1 包含超过 255 个字符的字符串,则此解决方案不起作用。这会导致#VALUE! 错误
【讨论】:
在这里创建宏:
在 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! 完成!
【讨论】:
Address:=xCell.Formula 更改为Address:="mailto:" & xCell.Formula
http:// 开头的 URL,需要添加此项(使用上述更改,但将 mailto: 替换为 http://。否则超链接不起作用。
相当短的列表很简单:
你有你的链接;)
【讨论】:
这是我找到的一种方法。我在使用 Excel 2011 的 Mac 上。
如果 B 列有您想要作为超链接的文本值,请将此公式放入单元格 C1(或 D1 或其他任何内容,只要它是一个空闲列):=HYPERLINK(B1,B1)
这将插入一个超链接,其中位置作为链接文本,“友好名称”作为链接文本。如果您有另一列对每个链接都有一个友好名称,您也可以使用它。
然后,如果您不想看到它,可以隐藏文本列。
如果你有一个东西的ID列表,并且url都是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 可以做到这一点,但这对于很多单元格来说是乏味的。
【讨论】:
如果adding an extra column with the hyperlinks 不是一个选项,
另一种方法是使用外部编辑器将您的超链接附在=hyperlink(" 和") 中,以获得=hyperlink("originalCellContent")
如果你有 Notepad++,这是一个你可以用来半自动执行这个操作的方法:
=hyperlink("。这会在每个条目的开头添加=hyperlink("。$(行尾)替换为"\)。这会在每行的末尾添加一个封闭的引号和一个封闭的括号(在激活正则表达式时需要使用 \ 进行转义)。【讨论】:
=hyperlink("__linecontentgoeshere__") 包裹每一行......对于那些可能被提到记事本++ 误导的人
="=HYPERLINK("""&A1&""")" 编写公式(假设 URL 在 A1 中)。然后将结果复制到记事本并返回 Excel(可能有更好的方法)。现在您有了工作超链接 - 您可以将“样式”面板中的超链接样式应用到它们以获得带蓝色下划线的外观。如果 B 列中有链接标签,则可以使用以下公式:="=HYPERLINK("""&A1&""";"""&B1&""")"。
这个方法适用于我使用超链接功能:
=HYPERLINK("http://"&B10,B10)
B10 是包含 URL 文本版本的单元格(在本例中)。
【讨论】:
我震惊 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>
代替第二步,您可以使用下面的页面,首先,单击“运行代码 sn-p”,然后将列粘贴到上面
<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>
【讨论】:
在 Windows 上使用 Excel 2007,我发现这些步骤最简单;
【讨论】:
【讨论】:
我发现如果超链接不包含 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 的整个列复制到另一个应用程序(比如 Evernote)中,当它们粘贴在那里时,它们变成了链接,然后我只是将它们复制回 Excel。
这里唯一的事情是您需要确保您复制回来的数据与其余列对齐。
【讨论】:
试试这个:
=HYPERLINK("mailto:"&A1, A1)
将 A1 替换为您的电子邮件地址单元格文本。
【讨论】:
您可以将公式=HYPERLINK(<your_cell>,<your_cell>) 插入到相邻单元格中,并将其一直拖到底部。这将为您提供一个包含所有链接的列。现在,您可以通过单击标题来选择原始列,单击鼠标右键,然后选择Hide。
【讨论】:
如果将文本内容复制到新列并使用:
=HYPERLINK("http://"&B10,B10)
在您原来的专栏上。然后使用$ 作为列,如下所示:
=HYPERLINK("http://"&$B10,$B10)
这是它在 Windows 7 上的 Excel 2010 上对我有用的唯一方法。您可以复制公式。
【讨论】:
将 URL 放入 HTML 表格中,将 HTML 页面加载到浏览器中,复制该页面的内容,然后粘贴到 Excel 中。此时,URL 被保留为活动链接。
解决方案由(Jim Gordon Mac MVP)在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/ 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
【讨论】:
NotPresent?
我有一个输入 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
等等
干杯
【讨论】:
在 Mac 上,一个非常简单的方法是在 Excel 中选择整个电子表格,复制,启动 Numbers,粘贴,然后全选,复制并粘贴回 Excel。
【讨论】:
这里最简单的方法
【讨论】:
Excel 2010 中最简单的方法: 选择包含 URL 文本的列,然后从“主页”选项卡中选择“超链接样式”。 列中的所有 URL 现在都是超链接。
此外,双击 URL 文本末尾的每个单元格并添加空格或直接输入也会生成超链接。类似于在 MS Outlook 电子邮件中创建 URL 链接的方式。
【讨论】:
有一个非常简单的方法可以做到这一点。创建一个超链接,然后使用格式刷复制格式。它将为每个项目创建一个超链接。
【讨论】: