首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果TextToDisplay更改,则自动更改超链接地址

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

Stack Overflow用户
提问于 2019-07-16 05:15:14
回答 1查看 923关注 0票数 0

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

例如,超链接的TextToDisplay是:

代码语言:javascript
运行
复制
D:/attachment/1000.jpg 

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

代码语言:javascript
运行
复制
D:/attachment/1001.jpg

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 05:45:19

公式解

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

代码语言:javascript
运行
复制
=HYPERLINK(A:A)

VBA溶液

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

代码语言:javascript
运行
复制
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

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

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57050432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档