首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在单击超链接时,是否有方法以形状刷新/更新超链接?

在单击超链接时,是否有方法以形状刷新/更新超链接?
EN

Stack Overflow用户
提问于 2013-04-26 23:13:01
回答 1查看 829关注 0票数 0

图中有表示数据流中进程的形状;形状是超链接到位于另一个选项卡中的进程定义的,该选项卡基于形状和形状名称中的文本(例如,带有文本" ABC“链接到定义ABC进程的选项卡的"Control ##”形状)。如果我将形状中的文本更改为"XYZ“,是否有方法自动更新该形状的超链接--也就是说,我希望超链接随后转到"XYZ”定义?我尝试过SheetFollowHyperlink事件过程,但似乎什么也没有发生。到目前为止,我掌握的代码如下:

代码语言:javascript
运行
复制
Sub AssignHyperlink()

Dim CallerShapeName As String
CallerShapeName = Application.Caller

With ActiveSheet
    Dim CallerShape As Shape
    Set CallerShape = .Shapes(CallerShapeName)

    Dim RowVar As Integer

    Err.Number = 0
    On Error Resume Next

    If InStr(CallerShapeName, "Control") = 1 Then

        RowVar = Application.WorksheetFunction _
            .Match(.Range("C2").Value & CallerShape.TextFrame2.TextRange.Text, _
            Sheets("Control Point Log").Range("A1:A700"), 0)

        If (Err.Number = 1004) Then
            MsgBox "No match found for this shape text in the Control Point Log"
            Exit Sub
        End If

        On Error GoTo 0

        .Hyperlinks.Add Anchor:=CallerShape, _
        Address:=ActiveWorkbook.Name & "#" & "'Control Point Log'!$C$" & RowVar

    Else

        RowVar = Application.WorksheetFunction _
            .Match(.Range("C2").Value & CallerShape.TextFrame2.TextRange.Text, _
            Sheets("Data Flow Glossary").Range("A1:A700"), 0)

        If (Err.Number = 1004) Then
            MsgBox "No match found for this shape text in the Data Flow Glossary"
            Exit Sub
        End If

        On Error GoTo 0

        .Hyperlinks.Add Anchor:=CallerShape, _
        Address:=ActiveWorkbook.Name & "#" & "'Data Flow Glossary'!$C$" & RowVar

    End If

End With

End Sub
EN

回答 1

Stack Overflow用户

发布于 2013-04-27 06:58:50

1.我假设您的目标是在单击该形状后导航到工作簿中的范围。

2.导航到的区域被命名为range。

3.导航范围等于形状中的文本。

我的建议是使用形状的onAction触发器(当右键单击形状时使用assign macro)。

4rd.我们需要以下程序--所有形状的一个。

代码语言:javascript
运行
复制
Sub Hyperlink_Workaround()
    On Error GoTo ErrorHandler

    Dim curHL As String
        curHL = ActiveSheet.Shapes(Application.Caller).TextFrame2.TextRange.Text

    'which way do you define destination?
    'this way you go to named range

    Application.Goto Range(curHL), True
    Exit Sub
ErrorHandler:
    MsgBox "There is no range like " & curHL
End Sub

5.测试,在工作表上有以下形状并分配上述宏,单击任何形状后,我们将移动到工作簿中的ABC或范围。

6.我在尝试导航到不存在的范围时添加了处理程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16246521

复制
相关文章

相似问题

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