#excel #vba #hyperlink
Вопрос:
У меня есть гиперссылки на листе, которые переходят к ячейкам, использующим именованный диапазон на других листах. Приведенный ниже рабочий код переключает рабочие листы (на основе гиперссылки) и помещает целевую ячейку в верхний левый угол, когда я нажимаю на гиперссылку. Это прекрасно работает.
Однако по одной конкретной гиперссылке я хочу, чтобы она переключалась только на рабочий лист, но я не хочу запускать приведенный ниже код, чтобы он был помещен в левом верхнем углу. Я просто хочу поменять рабочие листы и оставить позиционирование в покое.
Поскольку приведенный ниже код является событием при нажатии на любую гиперссылку, я хотел бы проверить конкретный целевой лист и не запускать приведенный ниже код.
Есть ли способ (если…тогда?) определить рабочий лист, на который я переключаюсь, и не выполнять приведенный ниже код?
Заранее спасибо.
Option Explicit
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveWindow.ScrollRow = ActiveCell.Row
ActiveWindow.ScrollColumn = ActiveCell.Column
End Sub
Код Psuedo — я ищу код VBA, выделенный жирным шрифтом.
Option Explicit
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
**If (name in hyperlink) = "my target sheet" Then exit sub**
ActiveWindow.ScrollRow = ActiveCell.Row
ActiveWindow.ScrollColumn = ActiveCell.Column
End Sub
Ответ №1:
Ответ оказался простым. 🙂 Я ничего не знаю о VBA, но БигБен дал мне несколько советов.
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Target.Name = "<target sheetname>" Then Exit Sub
ActiveWindow.ScrollRow = ActiveCell.Row
ActiveWindow.ScrollColumn = ActiveCell.Column
End Sub