Страницы: 1
RSS
Добавление ссылок на листы
 
День добрый!    
У меня возникла такая ситуация: Есть книга. В ней первый лист - реестр. Следующие листы - детальная информация по каждой строке реестра. Необходимо на каждый лист книги сделать ссылки в реестре.    
Нашел здесь макрос для создания оглавления ( http://www.planetaexcel.ru/tip.php?aid=49 ) Помогите переделать его для моей ситуации.  
Приложил файл с такой же структурой. В нём надо сделать ссылку на соответствующий лист для каждого имя в реестре.
 
Вот вам пример макроса:  
 
 
Sub test()  
   Dim sh As Worksheet: On Error Resume Next  
   For Each sh In ThisWorkbook.Worksheets    ' перебираем все листы  
       If Not sh Is reestr Then    ' (если лист - не реестр)  
           FIO = sh.Range("c2")    ' берем ФИО  
           ' ищем на листе РЕЕСТР в столбце B очередное ФИО  
           With reestr.Range("b:b").Find(FIO, , xlValues, xlWhole)  
               .Hyperlinks.Add .Range("a1"), "", "'" & sh.Name & "'" & "!c2", _  
                               "Перейти к просмотру листа" & vbNewLine & FIO  
           End With  
       End If  
   Next sh  
End Sub  
 
 
Пример в файле: http://excelvba.ru/XL_Files/Sample__31-03-2011__10-58-05.zip
 
Спасибо.    
работает. Но если добавить в реестр новые строки - ссылки на них не появляются (только на те, которые были изначально)
 
может так подойдет..
Живи и дай жить..
 
{quote}{login=слэн}{date=31.03.2011 09:54}{thema=}{post}может так подойдет..{/post}{/quote}  
 
спасибо, но нет. мне надо автоматически присвоить 200 ссылок, а в вашем варианте автоматизации нету :-(
 
{quote}{login=EducatedFool}{date=31.03.2011 08:58}{thema=}{post}Вот вам пример макроса:  
 
 
Sub test()  
   Dim sh As Worksheet: On Error Resume Next  
   For Each sh In ThisWorkbook.Worksheets    ' перебираем все листы  
       If Not sh Is reestr Then    ' (если лист - не реестр)  
           FIO = sh.Range("c2")    ' берем ФИО  
           ' ищем на листе РЕЕСТР в столбце B очередное ФИО  
           With reestr.Range("b:b").Find(FIO, , xlValues, xlWhole)  
               .Hyperlinks.Add .Range("a1"), "", "'" & sh.Name & "'" & "!c2", _  
                               "Перейти к просмотру листа" & vbNewLine & FIO  
           End With  
       End If  
   Next sh  
End Sub  
 
 
Пример в файле: http://excelvba.ru/XL_Files/Sample__31-03-2011__10-58-05.zip{/post}{/quote}  
 
 
не подскажете, что означает эта строка - With reestr.Range("b:b").Find(FIO, , xlValues, xlWhole)??
 
{quote}{login=}{date=31.03.2011 11:13}{thema=Re: }{post}  
 
спасибо, но нет. мне надо автоматически присвоить 200 ссылок, а в вашем варианте автоматизации нету :-({/post}{/quote}  
 
 
вы ее просто не увидели..  
 
если растянуть формулу вниз хоть на 200, хоть на 200тыс ячеек - она автоматически изменится..
Страницы: 1
Читают тему
Наверх