2

Мне интересно, почему следующий код не работает:

Dim shp as Shape
With Range("D7")
    .AddComment
    .Comment.Visible = True
    Set shp = .Comment.Shape
End With
ActiveSheet.Hyperlinks.Add Anchor:=shp, Address:="", _
                   SubAddress:="A7", ScreenTip:="Move"

Если я проделываю аналогичные действия с вновь созданным объектом Shape (например, прямоугольником), это работает, но, поскольку я устанавливаю привязку для Shape комментария, код завершается с

Run-time error '5':
Invalid procedure call or argument

Что я делаю неправильно?
Спасибо!

2 ответа2

2

Комментарий представляет собой тип фигуры, но он не поддерживает все свойства фигуры, включая, к сожалению, гиперссылки. Вот почему вы можете добавить гиперссылку на другую фигуру, но не на комментарий.

Комментарий обычно не позволяет вам нажать на него. Поскольку вы изменили свойство visible на true, это изменит поведение по умолчанию, заставляя комментарий оставаться поверх некоторых окружающих ячеек. Так как это происходит, вам лучше сделать форму, которая выглядит как комментарий, но на самом деле это не так. Сделайте гиперссылку на форму комментария, и вы получите ответ.

Простая альтернатива - связать ячейку с гиперссылкой.

0

Одна вещь, которую я заметил, заключается в том, что если вы вводите только URL-адрес для комментария во время создания, то, когда комментарий отображается на экране с помощью "Показать комментарий", он будет кликабельным и приведет вас к соответствующему URL-адресу. Даже после редактирования текста в комментарии он будет продолжать работать как гиперссылка.

Таким образом, это обходной путь для включения комментария в ссылку не более чем на один URL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .