У меня есть фигуры на диаграмме, которые представляют процессы в потоке данных; фигуры связаны гиперссылками с определениями процессов, расположенными на другой вкладке, на основе текста в фигуре и имени формы (например, фигура с именем «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
SmartArt
объект из нескольких фигур, которые составлены в виде диаграммы? - person Kazimierz Jawor   schedule 27.04.2013hyperlinks
наonAction
функцию фигуры ... чем один (для всех фигур) простой макрос будет вызываться при нажатии на фигуру. Этот макрос может перемещаться в любом месте вашей книги. - person Kazimierz Jawor   schedule 27.04.2013on Action
(или что-то подобное, поскольку я не использую английскую версию Excel, я не могу это проверить). Затем вы можете установить макрос, который будет запущен (однако вам необходимо удалить гиперссылку этой формы перед запуском). Используя этот макрос, вы можете перемещаться... Если у вас возникли проблемы, вы можете либо оставить комментарий здесь, либо начать новый вопрос... - person Kazimierz Jawor   schedule 27.04.2013