Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание гиперссылки на листе1 по имени ячейки на листе 2,3 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание гиперссылки на листе1 по имени ячейки на листе 2,3 (Макросы/Sub)
Создание гиперссылки на листе1 по имени ячейки на листе 2,3
Аля Дата: Воскресенье, 10.07.2016, 10:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый день! Помогите, пожалуйста, Я перерыла весь интернет (англоязычный в том числе) но не нашла макроса для решения следующей задачи: существует огромная база данных (как в примере, только с листами больше 10 и с индикаторами свыше 5000). На первом листе есть список всех индикаторов, которые имеют уникальное имя и присутствуют только 1 раз на одной из последующих страниц. Нужно макросом создать гиперссылку на первой странице для каждого из индикаторов при нажатии на которую переходишь на нужную ячейку в другом листе. Структура файла как в примере (т.е. фактически, мне нужно искать только в колонках B, но по всем листам)
Спасибо заранее за помощь.

П.С. Я нашла вот этот макрос на одном из сайтов, но он ищет только по столбцу А...

[vba]
Код

    Sub uuu()  
        Dim i&, ii&  
        Dim cont As Worksheet, price As Worksheet  
    '----------------------------------------------  
        Set cont = Sheets("Содержание")  
        Set price = Sheets("Прайс")  
        For i = 1 To cont.Cells(Rows.Count, 1).End(xlUp).Row  
            If cont.Cells(i, 1) <> "" Then  
                For ii = 1 To price.Cells(Rows.Count, 2).End(xlUp).Row  
                    If price.Cells(ii, 2) = cont.Cells(i, 1) Then  
                        cont.Hyperlinks.Add Anchor:=cont.Cells(i, 1), Address:="", SubAddress:=price.Name & "!" & price.Cells(ii, 2).Address  
                    End If  
                Next  
            End If  
        Next  
        Beep  
        MsgBox "Йо-хо-хо!"  
    End Sub  
[/vba]


Прошу понять и простить...

Сообщение отредактировал Аля - Понедельник, 11.07.2016, 08:42
 
Ответить
СообщениеДобрый день! Помогите, пожалуйста, Я перерыла весь интернет (англоязычный в том числе) но не нашла макроса для решения следующей задачи: существует огромная база данных (как в примере, только с листами больше 10 и с индикаторами свыше 5000). На первом листе есть список всех индикаторов, которые имеют уникальное имя и присутствуют только 1 раз на одной из последующих страниц. Нужно макросом создать гиперссылку на первой странице для каждого из индикаторов при нажатии на которую переходишь на нужную ячейку в другом листе. Структура файла как в примере (т.е. фактически, мне нужно искать только в колонках B, но по всем листам)
Спасибо заранее за помощь.

П.С. Я нашла вот этот макрос на одном из сайтов, но он ищет только по столбцу А...

[vba]
Код

    Sub uuu()  
        Dim i&, ii&  
        Dim cont As Worksheet, price As Worksheet  
    '----------------------------------------------  
        Set cont = Sheets("Содержание")  
        Set price = Sheets("Прайс")  
        For i = 1 To cont.Cells(Rows.Count, 1).End(xlUp).Row  
            If cont.Cells(i, 1) <> "" Then  
                For ii = 1 To price.Cells(Rows.Count, 2).End(xlUp).Row  
                    If price.Cells(ii, 2) = cont.Cells(i, 1) Then  
                        cont.Hyperlinks.Add Anchor:=cont.Cells(i, 1), Address:="", SubAddress:=price.Name & "!" & price.Cells(ii, 2).Address  
                    End If  
                Next  
            End If  
        Next  
        Beep  
        MsgBox "Йо-хо-хо!"  
    End Sub  
[/vba]

Автор - Аля
Дата добавления - 10.07.2016 в 10:41
Nic70y Дата: Воскресенье, 10.07.2016, 11:09 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3483
Репутация: 722 ±
Замечаний: 0% ±

Excel 2013
как в примере
в каком?


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
Сообщение
как в примере
в каком?

Автор - Nic70y
Дата добавления - 10.07.2016 в 11:09
Аля Дата: Воскресенье, 10.07.2016, 23:45 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Странно... Не прикрепился файл с первого раза... Прикрепляю заново. После каждого индикатора должна следовать таблица с цифрами, которые я не выкладываю... Сделала поле желтым для примера в начале второго листа...
А предыдущий код макроса взяла тут: http://www.excel-vba.ru/forum/index.php?topic=4519.new#new
К сообщению приложен файл: 111.xlsx(22Kb)


Прошу понять и простить...

Сообщение отредактировал Аля - Понедельник, 11.07.2016, 01:52
 
Ответить
СообщениеСтранно... Не прикрепился файл с первого раза... Прикрепляю заново. После каждого индикатора должна следовать таблица с цифрами, которые я не выкладываю... Сделала поле желтым для примера в начале второго листа...
А предыдущий код макроса взяла тут: http://www.excel-vba.ru/forum/index.php?topic=4519.new#new

Автор - Аля
Дата добавления - 10.07.2016 в 23:45
ShAM Дата: Понедельник, 11.07.2016, 05:57 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1233
Репутация: 209 ±
Замечаний: 0% ±

Excel 2010
Аля, пока не поправите 1-й пост согласно замечанию Модератора, ответов не будет. Даже если будут, то Модераторы удалят.
ЗЫ: Вы вроде бы пытались, но не удачно.


Сообщение отредактировал ShAM - Понедельник, 11.07.2016, 05:59
 
Ответить
СообщениеАля, пока не поправите 1-й пост согласно замечанию Модератора, ответов не будет. Даже если будут, то Модераторы удалят.
ЗЫ: Вы вроде бы пытались, но не удачно.

Автор - ShAM
Дата добавления - 11.07.2016 в 05:57
Аля Дата: Понедельник, 11.07.2016, 08:45 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Спасибо, ShAM. Вроде получилось в этот раз.


Прошу понять и простить...
 
Ответить
СообщениеСпасибо, ShAM. Вроде получилось в этот раз.

Автор - Аля
Дата добавления - 11.07.2016 в 08:45
Karataev Дата: Понедельник, 11.07.2016, 11:03 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 226 ±
Замечаний: 0% ±

Excel
[vba]
Код
Sub Макрос()

    Dim shTOC As Worksheet, sh As Worksheet
    Dim arrTOC(), lr As Long, iTOC As Long, iSh As Long, r As Long
    
    Application.ScreenUpdating = False
    
    Set shTOC = Worksheets("Содержание")
    
    lr = shTOC.Columns("B").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
    arrTOC() = shTOC.Range("B1:B" & lr).Value

    For iTOC = 1 To UBound(arrTOC)
    
        If arrTOC(iTOC, 1) = Empty Then
            GoTo metka
        End If
        
        For iSh = 2 To Worksheets.Count
            Set sh = Worksheets(iSh)
            If WorksheetFunction.CountIf(sh.Columns("B"), arrTOC(iTOC, 1)) <> 0 Then
                r = WorksheetFunction.Match(arrTOC(iTOC, 1), sh.Columns("B"), 0)
                shTOC.Hyperlinks.Add Anchor:=shTOC.Cells(iTOC, "B"), Address:="", _
                    SubAddress:="'" & sh.Name & "'!" & sh.Cells(r, "B").Address, _
                    TextToDisplay:=arrTOC(iTOC, 1)
                Exit For
            End If
        Next

metka:
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Готово!", vbInformation

End Sub
[/vba]


 
Ответить
Сообщение[vba]
Код
Sub Макрос()

    Dim shTOC As Worksheet, sh As Worksheet
    Dim arrTOC(), lr As Long, iTOC As Long, iSh As Long, r As Long
    
    Application.ScreenUpdating = False
    
    Set shTOC = Worksheets("Содержание")
    
    lr = shTOC.Columns("B").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
    arrTOC() = shTOC.Range("B1:B" & lr).Value

    For iTOC = 1 To UBound(arrTOC)
    
        If arrTOC(iTOC, 1) = Empty Then
            GoTo metka
        End If
        
        For iSh = 2 To Worksheets.Count
            Set sh = Worksheets(iSh)
            If WorksheetFunction.CountIf(sh.Columns("B"), arrTOC(iTOC, 1)) <> 0 Then
                r = WorksheetFunction.Match(arrTOC(iTOC, 1), sh.Columns("B"), 0)
                shTOC.Hyperlinks.Add Anchor:=shTOC.Cells(iTOC, "B"), Address:="", _
                    SubAddress:="'" & sh.Name & "'!" & sh.Cells(r, "B").Address, _
                    TextToDisplay:=arrTOC(iTOC, 1)
                Exit For
            End If
        Next

metka:
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Готово!", vbInformation

End Sub
[/vba]

Автор - Karataev
Дата добавления - 11.07.2016 в 11:03
Аля Дата: Понедельник, 11.07.2016, 12:11 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Спасибо огромное, Karataev! Я в течение дня сижу на английской ОС и не могу воспользоваться макросом для файла с названиями в кириллице (вижу кракозябры вместо названия листов), но для проверки я переименовала все листы на порядковые номера и макрос сработал!!! Вернусь домой и запущу макрос на русской ОС с реальными названиями листов. hands hands hands Отпишусь потом о результатах!!! Еще раз спасибо огромное за вашу помощь!!! thumb


Прошу понять и простить...
 
Ответить
СообщениеСпасибо огромное, Karataev! Я в течение дня сижу на английской ОС и не могу воспользоваться макросом для файла с названиями в кириллице (вижу кракозябры вместо названия листов), но для проверки я переименовала все листы на порядковые номера и макрос сработал!!! Вернусь домой и запущу макрос на русской ОС с реальными названиями листов. hands hands hands Отпишусь потом о результатах!!! Еще раз спасибо огромное за вашу помощь!!! thumb

Автор - Аля
Дата добавления - 11.07.2016 в 12:11
Аля Дата: Понедельник, 11.07.2016, 14:21 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Не дождалась вечера. Попросила коллегу из IT установить на рабочий комп кодировку для кириллицы. И УРА!!!! Все сработало!!!! Еще раз спасибо огромное, Karatayev, за рабочий код! А также вам, ShAM и Nic70y, за подсказку в устранении пробелов поста.


Прошу понять и простить...
 
Ответить
СообщениеНе дождалась вечера. Попросила коллегу из IT установить на рабочий комп кодировку для кириллицы. И УРА!!!! Все сработало!!!! Еще раз спасибо огромное, Karatayev, за рабочий код! А также вам, ShAM и Nic70y, за подсказку в устранении пробелов поста.

Автор - Аля
Дата добавления - 11.07.2016 в 14:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание гиперссылки на листе1 по имени ячейки на листе 2,3 (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!