如何将第 1 列中的字符串作为名称分配给 excel VBA 中所有行的第 2 列中的超链接?

How to assign a string in column 1 as name to a hyperlink in column 2 across all rows in excel VBA?

我有一个 excel 电子表格,如下所示:

输入:

Link Name   Hyperlink   Other Data
Group 1     google.de/1     1
Group 1     google.de/2     2
Group 2     google.de/3     3
Group 2     google.de/4     4
Group 3     google.de/5     5

我需要一个 VBA sub,它将 Link Name 中的所有字符串作为名称分配给 Hyperlink 中的 link:

期望输出:

Link Name   Hyperlink   Other Data
Group 1     Group 1         1            # Hyperlink: Underlined, blue
Group 1     Group 1         2            # Hyperlink: Underlined, blue
Group 2     Group 2         3            # Hyperlink: Underlined, blue
Group 2     Group 2         4            # Hyperlink: Underlined, blue
Group 3     Group 3         5            # Hyperlink: Underlined, blue

Hyperlink 现在应该可以点击并按照 Link Name 中的定义进行标记。我当前的方法似乎没有遍历 Link Name 列:

当前方法:

Sub rename_links()
For Each h In ActiveSheet.Hyperlinks   // Select hyperlink
    h.TextToDisplay = _
    Replace(h.TextToDisplay, h.TextToDisplay, ActiveCell.Offset(0, -1).Value) 
    Next
End Sub

当前输出:

Link Name   Hyperlink   Other Data
Group 1     Link Name           1          
Group 1     Link Name           2           
Group 2     Link Name           3            
Group 2     Link Name           4           
Group 3     Link Name           5  

我相信这是因为 ActiveCell.Offset(0, -1).Value 没有受到 Next 的影响。

如何将第 1 列中的字符串作为名称分配给 excel VBA 中所有行的第 2 列中的 hyperlink?

您可以使用第 2 列中的一个简单公式来实现:

=HYPERLINK("your link address here", A1)

其中使用 A1 的文本作为 link 名称。


或者用VBA写那个公式:

Range("B1:B10").Formula = "=HYPERLINK(""your link address here"", A1)"