如果TextToDisplay更改,则自动更改超链接地址

时间:2019-07-16 05:15:14

标签: excel vba excel-formula hyperlink

我需要Excel中超链接的解决方案。如果更改超链接的文本,我想使整个超链接地址自动更新。

例如,超链接的TextToDisplay是:

D:/attachment/1000.jpg 

然后将超链接的TextToDisplay更改为:

D:/attachment/1001.jpg

如果更改超链接的文本,则超链接地址将与显示文本相同。

1 个答案:

答案 0 :(得分:1)

公式解决方案

简单的方法是使用帮助器列。例如,在A列中编写您的URL,并在B列中使用以下公式创建超链接。每次更改A列中的URL时,都会相应地更改超链接。

=HYPERLINK(A:A)

enter image description here

VBA解决方案

或者,您可以在VBA中使用Worksheet_Change事件。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell As Range
    For Each Cell In Target
        If Cell.Hyperlinks.Count = 1 Then
            Cell.Hyperlinks(1).Address = Cell.Value
        End If
    Next Cell
End Sub

请注意,此代码适用于工作表上的所有超链接。如果要将其限制为特定范围,请进行以下更改:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim AffectedRange As Range
    Set AffectedRange = Intersect(Target, Me.Range("A:A"))
        'limits the code to hyperlinks in column A.
        'hyperlinks in other cells than column a are not changed

    If Not AffectedRange Is Nothing Then
        Dim Cell As Range
        For Each Cell In AffectedRange
            If Cell.Hyperlinks.Count = 1 Then
                Cell.Hyperlinks(1).Address = Cell.Value
            End If
        Next Cell
    End If
End Sub