我在表示數據流中的進程的圖中有形狀;基於形狀和形狀名稱中的文本(例如,名爲「Control ##」的形狀,其中文本「ABC」鏈接到定義ABC過程的選項卡),形狀超鏈接到位於另一個選項卡中的過程定義。如果我將形狀中的文本更改爲「XYZ」,即是否希望超鏈接轉到「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
當單擊形狀時,爲什麼不檢索形狀的文本並使用它直接導航到相關的工作表?或者我錯過了什麼? – 2013-04-26 23:18:11
我正在使用形狀的文本進行鏈接,但是當我更改文本時,它不會使用新文本重新鏈接形狀。 – 2013-04-27 02:20:31
你用哪種方式定義hyperling的目的地?他們只是'選項卡'(張)名稱,或者您在工作簿中使用「命名範圍」? – 2013-04-27 05:52:05