在 Excel 2010 中自动对包含 URL 的大量单元格进行超链接

在 Excel 2010 中自动对包含 URL 的大量单元格进行超链接

我有一个 Excel 电子表格,其中大约有 900 个单元格,每个单元格包含一个 URL,是我从另一个程序粘贴过来的。

如果我选择一个单元格并点击F2,然后点击Enter,Excel 会向该单元格添加一个超链接,其地址就是单元格内容。

Excel 2010 中是否有一种机制可以对我的数百个单元格重复此步骤,而无需手动执行此F2 Enter步骤?

(我知道我可以在 AutoHotKey 中自动化,但我希望不需要这样做)

澄清:我特别想将超链接添加到我现有的单元格中,而不是创建包含超链接的第二列。

我尝试过的事情:

  1. =Hyperlink(A1)按照 user301746 的回答,在 内创建一个临时的额外列,A2然后使用选择性粘贴首先复制并粘贴格式,然后将值复制到 上A1。这似乎有效,因为 A1 等中的单元格显示为蓝色并带有下划线,因此它们看起来像超链接,但实际上并没有链接 - 它只是复制了超链接显示样式。

答案1

所以我找到了一个解决这个问题的作弊方法,我遇到了同样的问题,需要将大约 4000 个单元格转换为超链接

我将整列复制并粘贴到 google sheet 中,gsheet 自动将所有链接转换为活动链接,然后我从 gsheet 重新复制该列并将其粘贴回 excel 电子表格中。

答案2

作为 autohotkey 的替代方案,使用 vba 进行编码相当容易。以下代码将对 A 列中从第 2 行开始的所有单元格执行您想要的操作。

Sub add_links()
Dim lRow As Long

    With ActiveSheet
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        For Each c In .Range("A2:A" & lRow)
            ActiveSheet.Hyperlinks.add anchor:=c, Address:=c.Value
        Next
    End With

End Sub

答案3

您可以在 A2 中使用 =Hyperlink(A1) 来执行所需操作,然后使用单元格填充工具将其向下复制。

希望有所帮助。

答案4

@gtwebb 谢谢,这正是我需要的。

我稍微修改了一下以添加哪一列的输入

Sub add_links_Input_Column()
Dim lRow As Long
Dim ColHead As String

ColHead = InputBox("Enter Column Letter", "Identify Column", [c1].Value)
If ColHead = "" Then Exit Sub

    With ActiveSheet
        lRow = .Range(ColHead & .Rows.Count).End(xlUp).Row
        For Each c In .Range(ColHead & "2:" & ColHead & lRow)
            ActiveSheet.Hyperlinks.Add anchor:=c, Address:=c.Value
        Next
    End With

End Sub

相关内容