Excel VBA: гиперссылка, заполняющая содержимое целевой ячейки гиперссылкой - PullRequest
0 голосов
/ 09 июня 2019

Здесь много подобных вопросов о VBA и гиперссылке в excel, но я ничего не мог изменить в своей собственной ситуации.

На одном листе у меня есть столбец имен (E: E), а на другом - ячейка (D13).

Я хочу сделать гиперссылку на каждую ячейку в столбце (E: E), чтобы при нажатии гиперссылка не только переводила меня в ячейку (D13), но также заполняла ячейку (D13) именем, котороеЯ нажал на.

Итак, нажмите «Джон Смит» (Sheet1! E1) ---> (Sheet2! D13) = «Джон Смит»

Ответы [ 2 ]

2 голосов
/ 09 июня 2019

Сначала вам понадобится небольшой кусочек кода в стандартном модуле для установки гиперссылки в Sheet1:

Sub MakeLink()
    Sheets("Sheet1").Hyperlinks.Add Anchor:=Range("E1"), Address:="", SubAddress:="Sheet2!D13", TextToDisplay:="Stuff"
End Sub

Затем вам понадобится макрос событий в области кода рабочей таблицы для передачи содержимого:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveCell.Value = Sheets("Sheet1").Range(Target.Parent.Address).Value
End Sub
1 голос
/ 09 июня 2019

Я думаю, что лучшим решением может быть использование VBA. Если вы не знаете, как это сделать, запишите макрос, который выбирает ячейку в e, затем переходит к D13 и обновляет его значение, затем посмотрите на код, который был записан, и используйте эти фрагменты для создания вашего кода. На высоком уровне вы захотите вызвать макрос при нажатии любой ячейки в столбце E, который выполняет что-то вроде:

Dim e_value = <value of selected cell in column E> ThisWorkbook.Sheets("name of sheet 2").Range("D13") = e.value Application.Goto Reference:=Worksheets("Sheet2").Range("D13"), Scroll:=False

Обратите внимание, что приведенный выше содержит псевдокод, но он должен дать вам общее представление о том, как вы могли бы действовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...