Я хочу назначить макрос фигурам в моей книге, где макрос назначает относительную гиперссылку на форму, которая его вызвала. Я попытался использовать application.caller, чтобы получить имя формы, чтобы назначить гиперссылку, но она не работает для всех фигур, таких как форматы схемы последовательности операций. Любые предложения о том, как я могу заставить его работать на всех фигурах? Я получаю ошибку времени выполнения, элемент с указанным именем не найден, для всех форм диаграммы потока в моем листе. Этот код работает для стандартных форм, таких как прямоугольники; но в моем документе требуются форма последовательности операций.Есть ли способ вызова нестандартных форм в VBA; using application.caller не работает
'Hyperlink to tab "control point log" using text in shape and cell values
Sub Controlpointhyperlink()
Dim rowvar as integer
ActiveSheet.Shapes(Application.Caller).Select
Selection.ShapeRange.Item(1).Name = "thisshape"
rowvar = Application.WorksheetFunction _
.Match(ActiveSheet.Range("C2").Value & _
ActiveSheet.Shapes("thisshape").TextFrame2.TextRange.Text, _
Sheets("Control Point Log").Range("A1:A700"), 0)
With ActiveSheet
.Hyperlinks.Add Anchor:= .Shapes("thisshape"), _
Address:=ActiveWorkbook.Name & "#" & "'Control Point Log'!$C$" & rowvar
End With
End Sub
Ваша ошибка здесь, в этой строке: 'rowvar = Application ...'. Если это так, попробуйте добавить [эту логику] (http://stackoverflow.com/a/16174772/2143262) для управления, если каждая фигура имеет TextRange, прежде чем вы попытаетесь извлечь текст. –