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


当前回答

我有一个数字列表,馈送到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("http://"&B10,B10) 

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

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

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

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

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

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

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

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

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

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

将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