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

我在excel中有一个列,其中我有所有的网站url值。我的问题是我想把url值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的url。是否有一种方法可以在不编写宏的情况下创建到所有单元格的活动超链接。

753056 次浏览

如果你不想做一个宏,只要你不介意额外的列,那么就在你的url列旁边创建一个新列。

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

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

好吧,这是一个做作的解决方案,但我只是不知道如何让Excel评估一列的url作为超链接批量。

  1. 创建公式="=hyperlink(""" & A1 & """)"
  2. 拖累
  3. 复制新公式列
  4. 仅在原始列上粘贴特殊值
  5. 突出显示列,单击Ctrl-H(要替换),找到并用=替换=(以某种方式强制重新计算单元格)。
  6. 单元格现在应该是可点击的超链接。如果你想要蓝色/下划线样式,然后只突出所有单元格,并选择超链接样式。

超链接样式本身不能转换为可点击的链接,“插入超链接”对话框似乎不能将文本作为一堆单元格的地址。除此之外,所有单元格中的F2输入都可以做到这一点,但这对许多单元格来说很乏味。

这是我发现的一个方法。我在Mac上使用Excel 2011。 如果列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)的东西,你不需要url列表。这就是我的情况,而且效果很好。

根据这篇文章:http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/这个方法也可以在Excel 2007中工作。

有一个非常简单的方法。创建一个超链接,然后使用格式绘制器复制格式。它将为每个项目创建一个超链接。

创建宏如下所示:

在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

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

然后选择所需的单元格,单击宏,然后单击运行。

请注意不选择整个列!只选择单元格,你希望被改变为可点击的链接,否则你将结束在一个永无休止的循环,并必须重新启动Excel! 完成了!< / p >

这个方法适用于我使用超链接函数:

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

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

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

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

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

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

同时双击URL文本末尾的每个单元格,并添加一个空白或直接输入也会产生一个超链接。类似于您必须在MS Outlook电子邮件中创建URL链接的方式。

对于比较短的列表来说非常简单:

  1. 双击url所在的方框
  2. 输入

你有你的链接;)

如果你复制文本内容到一个新的列,并使用:

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

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

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

这是我在Windows 7上使用Excel 2010的唯一方法。你可以把这个公式抄下来。

最简单的方法

  • 突出显示整个列
  • 单击“插入”
  • 点击“超链接”
  • 点击“放入此文档”
  • 单击ok
  • 这是所有

试试这个:

=超链接(“mailto:”和A1, A1)

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

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

我还想让脚本万无一失,因为用户无法自己维护它,而我也无法使用。

它只会在选定范围内包含点且没有空格的单元格上运行。它最多只能运行1万个细胞。

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被保留为活动链接。

解决方案是由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上提出的

我发现这很有效。

我有这些url:

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/ < / p >

我把它们放入一个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中,链接就激活了。

对我来说,我只是复制了整个列,其中有文本格式的url到另一个应用程序(说Evernote),当他们粘贴在那里,他们成为链接,然后我只是复制回Excel。

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

谢谢仙后座的代码。我更改了他的代码,使其与本地地址一起工作,并对他的条件做了一些更改。我删除了以下条件:

  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

如果添加带有超链接的额外列不是一个选项, 另一种方法是使用外部编辑器将超链接包含在=hyperlink("")中,以获得=hyperlink("originalCellContent")

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

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

对于使用Excel 2016登陆这里的任何人,您可以简单地突出显示该列,然后单击位于Styles框中Home带上的Hyperlink选项卡。

enter image description here

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

我很惊讶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. 将该栏粘贴到刚刚在浏览器上打开的页面上,然后按“链接”键
  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>

我有一个数字列表,馈送到url的我想热链接。 例如,我有一个带有问题编号的列A(即,2595692,135171),我想将这些问题编号转换为热链接,并只显示问题编号

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

= " =超链接(“和”“http”“和”“:”“和”“和”,“和”“/ / stackoverflow.com/questions/”及A1&“”“”,“”和A1&“)”

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

你最终会得到如下所示的一列文本:

=超链接(“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

等。

干杯

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

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