我有一列网址,有些是 abc.com,有些是https://def.com。我该如何将整个列转换为活动超链接?根据我所做的实验,abc.com 似乎需要在前面加上 https://。我是新手,所以需要完整的说明。
虽然这个方法有效,目标列中填充了正确的超链接,我将其拖到目标列的底部,一切都按预期发生了变化,但我仍然需要保留原始列。如果我清除原始列,目标将只有“https://”,而没有实际目标。我知道有一种方法可以复制目标列并粘贴它,这样链接就不会引用原始列,但我尝试的所有方法都会删除超链接。如何清除/删除原始列并将目标保留为真正的超链接?
答案1
您可以使用IF
函数来测试单元格是否已经以http如果没有则将其添加到HYPERLINK
。
就像是:
=IF(LEFT(A2,4)="http",HYPERLINK(A2),HYPERLINK("http://"&A2))
如果您希望将超链接直接作为超链接而不是作为公式,您可以:
- 复制单元格
B
(或上述公式所在的列) - 粘贴价值观到列
A
(原始数据所在的位置),然后您可以删除列B
- 要
A
立即创建列超链接(所有都有),请选择具有这些链接的http://
列范围,然后运行此 VBA 宏:A
Alt使用+打开 VBA 窗口F11,选择窗口中的所有代码并粘贴此代码,然后按下其顶部的绿色运行箭头键:
Sub HyperAdd()
Dim xCell As Range
For Each xCell In Selection
ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
Next xCell
End Sub
老实说,如果我们需要 VBA,那么我们就用 VBA 来完成整个事情……
选择列中的范围A
(不要选择整列,仅选择有值的范围),然后打开 VBA 并粘贴并运行此代码:
Sub AddHTTPandHyperlink()
Dim rng As Range
Dim cell As Range
' Check if any cells are selected
If Selection.Cells.Count = 0 Then
MsgBox "No cells selected."
Exit Sub
End If
' Loop through each selected cell
For Each rng In Selection
' Check if the cell value is a string and doesn't start with "http://"
If TypeName(rng.Value) = "String" And Not rng.Value Like "http://*" Then
rng.Value = "http://" & rng.Value ' Add "http://" to the beginning
End If
Next rng
'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