我在excel中有一个列,其中我有所有的网站url值。我的问题是我想把url值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的url。是否有一种方法可以在不编写宏的情况下创建到所有单元格的活动超链接。
如果你不想做一个宏,只要你不介意额外的列,那么就在你的url列旁边创建一个新列。
在公式中的新列类型=HYPERLINK(A1)中(将A1替换为您感兴趣的单元格)。然后将公式复制到剩下的200个条目中。
注意:如果单元格A1包含的字符串长度超过255个字符,则此解决方案不起作用。它的结果是#VALUE!错误
好吧,这是一个做作的解决方案,但我只是不知道如何让Excel评估一列的url作为超链接批量。
创建公式="=hyperlink(""" & A1 & """)" 拖累 复制新公式列 仅在原始列上粘贴特殊值 突出显示列,单击Ctrl-H(以替换),查找并用=替换=(以某种方式强制重新计算单元格)。 单元格现在应该是可点击的超链接。如果你想要蓝色/下划线样式,然后只突出所有单元格,并选择超链接样式。
超链接样式本身不能转换为可点击的链接,“插入超链接”对话框似乎不能将文本作为一堆单元格的地址。除此之外,F2和Enter通过所有单元格就可以做到这一点,但这对很多单元格来说很乏味。
这是我发现的一个方法。我在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中工作。
创建宏如下所示:
在microsoftexcel的“工具”菜单上指向“宏”,然后单击“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! 完成了!
您可以插入公式=HYPERLINK(<your_cell>,<your_cell>)到相邻的单元格,并将其一直拖到底部。这将为您提供一个包含所有链接的列。现在,您可以通过单击标题,右键单击并选择Hide来选择原始列。
Excel 2010中最简单的方法: 选择带有URL文本的列,然后从“主页”选项卡选择“超链接样式”。 列中的所有url现在都是超链接。
同时双击URL文本末尾的每个单元格,并添加一个空白或直接输入也会产生一个超链接。类似于您必须在MS Outlook电子邮件中创建URL链接的方式。
如果你复制文本内容到一个新的列,并使用:
=HYPERLINK("http://"&B10,B10)
在你原来的专栏上。然后使用$的列,使它看起来像这样:
=HYPERLINK("http://"&$B10,$B10)
这是我在Windows 7上使用Excel 2010的唯一方法。你可以把这个公式抄下来。
我发现,如果超链接不包括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上提出的[http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]
我发现这很有效。
我有这些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/
我把它们放入一个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。
这里唯一需要做的是确保复制回来的数据与其余列对齐。
谢谢仙后座的代码。我更改了他的代码,使其与本地地址一起工作,并对他的条件做了一些更改。我删除了以下条件:
将http:/修改为file:/// 删除了所有类型的空白条件 改变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(" and "),以获得=hyperlink("originalCellContent")
如果你有notepad++,这是一个你可以用来半自动执行这个操作的配方:
Copy the column of addresses to Notepad++ Keeping ALT-SHIFT pressed, extended your cursor from the top left corner to the bottom left corner, and type =hyperlink(". This adds =hyperlink(" at the beginning of each entry. Open "Replace" menu (Ctrl-H), activate regular expressions (ALT-G), and replace $ (end of line) with "\). This adds a closed quote and a closed parenthesis (which needs to be escaped with \ when regular expressions are activated) at the end of each line. Paste back the data in Excel. In practice, just copy the data and select the first cell of the column where you want the data to end up.
对于使用Excel 2016登陆这里的任何人,您可以简单地突出显示该列,然后单击样式框中Home ribbon上的超链接选项卡。
编辑:不幸的是,这只更新单元格样式,而不是函数。
我很惊讶Excel没有自动做这个,所以这是我的解决方案,我希望对其他人有用,
将整个列复制到剪贴板 在Chrome或Firefox上打开这个
data:text/html,<button onclick=“document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=</a>\'' + x + '\'>' + x + '').join(''))<br>”>Linkify</button><br><textarea></textarea>
将该栏粘贴到刚刚在浏览器上打开的页面上,然后按“链接”键 将结果从选项卡复制到Excel的列中
代替第二步,您可以使用下面的页面,首先,单击“运行代码片段”,然后将列粘贴在上面 <按钮onclick = " document . write (document.body.querySelector(文本区域).value.split(“\ n”)。地图(x = > < a href = \”+ x + '\'>' + x + < / >) . join(“< br >”))按钮“>其内< / > < br > < textarea > < / >文本区域
我有一个数字列表,馈送到url的我想热链接。 例如,我有一个列A的问题编号(即,2595692,135171),我想把这些问题编号转换为热链接,并只显示问题编号。
因此,我建立了一个指向列a的纯文本超链接,并将其复制下来用于我所有的问题编号:
=“=超链接(”&“”“http”&“”&“”/stackoverflow.com/questions/“&”&“”&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
etc.
干杯
使用公式=HYPERLINK()创建一个临时的超链接新列 将该列复制到Microsoft Word(仅在Word运行后复制到剪贴板)。 复制新word文档中的所有内容(ctrl+a,然后ctrl+c)。 粘贴到Excel中,替换原来的文本列。使用公式删除临时列。