Страницы: 1
RSS
Перевести в ссылки весь диапазон
 
Добрый день!
Подскажите как сделать макрос, уже всю голову сломал:
На листе 1 в столбце E из имеющегося текста сделать гиперссылки на лист 2. Список в столбце будет очень длинный, соответственно нужно перевести в ссылки весь диапазон (исключая 1 строку и пустые ячейки).
То есть, на 1 листе вместо текста получить ссылки Телевизор1, Телевизор2... И при нажатии на ссылку Телевизор1, осуществляется переход на 2й лист.
Есть код, но он просто делает из списка гиперссылки без перехода, необходимо в код добавить адрес перехода
Код
Private Sub CreateHypelinkInTextCellv2()
    Dim iCell As Range, iText$
    For Each iCell In [E2:E15]
        iText = iCell.Text
        If iText <> "" Then iCell.Hyperlinks.Add iCell, iText
    Next
End Sub
Заранее всем спасибо за помощь.
Изменено: slider85 - 22.06.2019 19:06:34
 
Вариант:
Код
Sub CreateHypelinkInTextCellv2()
    Dim iCell As Range, iText$, sAddr
    For Each iCell In Worksheets("Лист1").[E2:E15]
        iText = iCell.Value
        If iText <> "" Then
        sAddr = Worksheets("Лист2").Range("C1:C10000").Find(What:=iText).Address
        iCell.Hyperlinks.Add anchor:=iCell, Address:="", SubAddress:="'" & "Лист2" & "'" & "!" & sAddr
        End If
    Next
End Sub
Изменено: _Igor_61 - 21.06.2019 15:51:14 (забыл файл прилепить :))
 
Да, все работает в файле, спасибо.
Но в свой переношу, там названия листов из двух слов с пробелом, подскажите как указать лист?
В этой строке ошибку выдает:
Код
sAddr = Worksheets("Хранение детали").Range("C1:C10000").Find(What:=iText).Address
Изменено: slider85 - 21.06.2019 17:55:52
 
файл покажите
 

Файл прикрепил. Спасибо за помощь!

Изменено: slider85 - 22.06.2019 19:07:09
 
Это уже совсем другой вопрос. Создайте новую тему с этим вопросом.
 
Ок, тогда этот вопрос вынесу в отдельную тему.
А что с по первому вопросу, поможете с моим последним файлом?
Изменено: slider85 - 21.06.2019 18:11:25
 
У Вас дело не в пробелах. Форматы ячеек должны быть одинаковыми. А ошибка в указанной строке появляется когда нет такого слова на втором листе, Find не может найти то, что нужно, тем более что во втором примере данные уже в другом столбце. Сделайте так:
Код
Sub CreateHypelink_1()
    Dim iCell As Range, sAddr
    Worksheets("Хранение").Activate
    Application.ScreenUpdating = False
    For Each iCell In Worksheets("Хранение").Range("E3:E110")
        On Error Resume Next
        If iCell.Value <> "" Then
           sAddr = Worksheets("Хранение детали").Range("E1:E1400").Find(What:=iCell.Value).Address
          If Err = 0 Then
             iCell.Hyperlinks.Add anchor:=iCell, Address:="", SubAddress:="'" & "Хранение детали" & "'!" & sAddr
          Else
             Err.Clear
          End If
        End If
    Next
    Application.ScreenUpdating = True
End Sub
И уберите пробелы между строк в 1-м и 5-м сообщениях, Вам же модератор про это сказал!
 
Спасибо огромное за помощь!
Все работает как надо :-)
Страницы: 1
Наверх