2013-03-07 14 views
2

Excel - Я хотел бы иметь возможность щелкнуть по ячейке на листе 1 и взять ее в ячейку на листе 2. Теперь мне не нужна простая гиперссылка, мне понадобится ячейку в листе 2 можно найти. Например, я нажимаю на ячейку A1, которая содержит слово «start», и при нажатии на нее меня переносят в ячейку на листе 2 с той же фразой «start». Теперь на листе 2 это может быть ячейка A1 или A4 или A57. Я бы хотел, чтобы он нашел, если он когда-либо изменит позицию внутри этой колонки. По сути, мне нужна гиперссылка с функцией поиска.Excel-Hyperlink с функцией поиска

ответ

3

Вы можете использовать событие VBA , чтобы переместить выделение после щелчка по ссылке.

Добавить нормальную гиперссылку на любую ячейку нужного листа назначения

Добавьте этот код в модуль источника рабочего листа

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
    Dim rngDest As Range 
    Dim shDest As Worksheet 
    Dim cl As Range 

    Set shDest = ActiveSheet 
    Set rngDest = shDest.Range("A:A") ' <--- change this to your target search range 
    With rngDest 
     Set cl = .Find(Target.Range.Cells(1, 1).Value, .Cells(.Rows.Count, .Columns.Count), xlValues, xlWhole, xlByRows, xlNext) 
     If Not cl Is Nothing Then 
      cl.Select 
     Else 
      ' value not found, return to original sheet 
      Target.Range.Worksheet.Activate 
      MsgBox Target.Range.Cells(1, 1).Value & " not found", vbOKOnly, "Not Found" 
     End If 
    End With 

End Sub