我在excel中有一个列,其中我有所有的网站url值。我的问题是我想把url值转换为活动链接。该列中大约有200个条目,所有单元格中都有不同的url。是否有一种方法可以在不编写宏的情况下创建到所有单元格的活动超链接。
当前回答
好吧,这是一个做作的解决方案,但我只是不知道如何让Excel评估一列的url作为超链接批量。
创建公式="=hyperlink(""" & A1 & """)" 拖累 复制新公式列 仅在原始列上粘贴特殊值 突出显示列,单击Ctrl-H(以替换),查找并用=替换=(以某种方式强制重新计算单元格)。 单元格现在应该是可点击的超链接。如果你想要蓝色/下划线样式,然后只突出所有单元格,并选择超链接样式。
超链接样式本身不能转换为可点击的链接,“插入超链接”对话框似乎不能将文本作为一堆单元格的地址。除此之外,F2和Enter通过所有单元格就可以做到这一点,但这对很多单元格来说很乏味。
其他回答
如果你不想做一个宏,只要你不介意额外的列,那么就在你的url列旁边创建一个新列。
在公式中的新列类型=HYPERLINK(A1)中(将A1替换为您感兴趣的单元格)。然后将公式复制到剩下的200个条目中。
注意:如果单元格A1包含的字符串长度超过255个字符,则此解决方案不起作用。它的结果是#VALUE!错误
如果你复制文本内容到一个新的列,并使用:
=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
谢谢仙后座的代码。我更改了他的代码,使其与本地地址一起工作,并对他的条件做了一些更改。我删除了以下条件:
将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.
推荐文章
- 我如何用javascript编程点击链接?
- 为什么我在我的Excel插件中得到“无法在证书存储中找到清单签名证书”?
- c# XML文档网站链接
- 我如何在NSAttributedString中创建一个可点击的链接?
- 链接重新加载当前页面
- 如何创建在移动设备上呼叫电话号码的超链接?
- 没有href属性的锚标记安全吗?
- 我怎样才能得到任何URL或网页的谷歌缓存年龄?
- 在一个UILabel的NSAttributedString中创建可点击的“链接”?
- jQuery禁用链接
- 在Chrome中打印时需要删除href值
- 如何将一列文本url转换为Excel中的活动超链接?
- 如何将地址转换为谷歌地图链接(非地图)
- 如何使一个HTML回链接?
- 如何使按钮看起来像一个链接?