Добрый день! Помогите, пожалуйста, Я перерыла весь интернет (англоязычный в том числе) но не нашла макроса для решения следующей задачи: существует огромная база данных (как в примере, только с листами больше 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 и с индикаторами свыше 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
Странно... Не прикрепился файл с первого раза... Прикрепляю заново. После каждого индикатора должна следовать таблица с цифрами, которые я не выкладываю... Сделала поле желтым для примера в начале второго листа... А предыдущий код макроса взяла тут: http://www.excel-vba.ru/forum/index.php?topic=4519.new#new
Странно... Не прикрепился файл с первого раза... Прикрепляю заново. После каждого индикатора должна следовать таблица с цифрами, которые я не выкладываю... Сделала поле желтым для примера в начале второго листа... А предыдущий код макроса взяла тут: http://www.excel-vba.ru/forum/index.php?topic=4519.new#newАля
Аля, пока не поправите 1-й пост согласно замечанию Модератора, ответов не будет. Даже если будут, то Модераторы удалят. ЗЫ: Вы вроде бы пытались, но не удачно.
Аля, пока не поправите 1-й пост согласно замечанию Модератора, ответов не будет. Даже если будут, то Модераторы удалят. ЗЫ: Вы вроде бы пытались, но не удачно.ShAM
Сообщение отредактировал ShAM - Понедельник, 11.07.2016, 05:59
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
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
Спасибо огромное, Karataev! Я в течение дня сижу на английской ОС и не могу воспользоваться макросом для файла с названиями в кириллице (вижу кракозябры вместо названия листов), но для проверки я переименовала все листы на порядковые номера и макрос сработал!!! Вернусь домой и запущу макрос на русской ОС с реальными названиями листов. Отпишусь потом о результатах!!! Еще раз спасибо огромное за вашу помощь!!!
Спасибо огромное, Karataev! Я в течение дня сижу на английской ОС и не могу воспользоваться макросом для файла с названиями в кириллице (вижу кракозябры вместо названия листов), но для проверки я переименовала все листы на порядковые номера и макрос сработал!!! Вернусь домой и запущу макрос на русской ОС с реальными названиями листов. Отпишусь потом о результатах!!! Еще раз спасибо огромное за вашу помощь!!! Аля
Не дождалась вечера. Попросила коллегу из IT установить на рабочий комп кодировку для кириллицы. И УРА!!!! Все сработало!!!! Еще раз спасибо огромное, Karatayev, за рабочий код! А также вам, ShAM и Nic70y, за подсказку в устранении пробелов поста.
Не дождалась вечера. Попросила коллегу из IT установить на рабочий комп кодировку для кириллицы. И УРА!!!! Все сработало!!!! Еще раз спасибо огромное, Karatayev, за рабочий код! А также вам, ShAM и Nic70y, за подсказку в устранении пробелов поста.Аля