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

Предположим, у нас есть лист1:

Column A : Column B
T1       : Brand Values
T2       : Brand Text

Также как мы можем достичь через находку всех вариантов.

enter image description here

Таким образом, для вышеуказанного параметра создайте гиперссылку для листа 2 сотовой ссылки A3.

Я получил код VBA для создания ссылок:

ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= "'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name

Как мне найти ссылку на элемент клетки для соответствующего текста на другом листе?

1
ayush varshney 3 Окт 2019 в 12:16

1 ответ

Лучший ответ

Для каждого листа найдите матч.

Затем напишите соответствующий адрес гиперссылки.

Sub test()
    Dim mySht As Worksheet, sht As Worksheet
    Dim cell As Range, myRng As Range

    Set mySht = ActiveSheet
    For Each cell In mySht.Range("B2:B3")
        For Each sht In Worksheets
            If sht.Name <> mySht.Name Then    ' find each worksheet except myself
                Set myRng = Nothing
                On Error Resume Next
                Set myRng = sht.Cells.Find(what:=cell.Value, LookIn:=xlValues, lookat:=xlWhole)    ' find match
                If Not myRng Is Nothing Then
                    mySht.Hyperlinks.Add _
                        anchor:=cell, _
                        Address:="", _
                        SubAddress:=myRng.Address(True, True, xlA1, True), _
                        TextToDisplay:=cell.Value
                    Exit For
                End If
                On Error Goto 0
            End If
        Next sht
    Next cell
End Sub
1
PaichengWu 3 Окт 2019 в 10:52