vba - 单击超链接时,是否有可用来刷新/更新超链接的方法?

  显示原文与译文双语对照的内容

图表中的形状表示数据流中的进程;形状被超链接到处于另一个选项卡中的定义( 比如 ) 。 名为"使用文本控制 ##""ABC"。定义ABC过程的标签的链接)的形状。 如果要将图形中的文本改为"xyz"- 换句话说,是否可以将超链接更新为 automatcially - 我希望超链接随后转到"xyz"定义? 我尝试了SheetFollowHyperlink事件过程,但似乎没有发生。 我目前拥有的代码如下:


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

时间:

如果你的目标是在工作簿中单击该形状,我假设你的目标是定位到工作簿中的范围

navigate定位到的范围为 range range 。

navigate navigate的范围等于形状中的文字。

我的建议是使用 onAction的形状( 在右击形状时使用 assign macro )

4rd 。 我们需要以下 procedure- 。


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

在工作表中添加以下形状,在工作表中单击任意形状,然后在工作表中单击鼠标右键,即可在工作表上使用以下宏。 enter image description here

在你尝试定位到不存在的范围时,我为situation添加了handler处理器。

...