Страницы: 1
RSS
как найти невидимые гиперссылки?
 
на листе имеется множество невидимых гиперссылок типа mailto:something@email.ru  
 
с виду пустая ячейка и только при наведении на ней выясняется что здесь гиперссылка.  
 
вопрос: есть ли какой-нибудь способ найти их все или удалить их все?  
 
спасибо.
 
В VBA (макросы) можно обратиться к коллекции Hyperlinks и работать с ней. Она содержит все гиперссылки листа:  
 
   Dim hh As Hyperlink  
   For Each hh In ActiveSheet.Hyperlinks  
       Debug.Print hh.Range.Address, hh.Address, _  
           hh.TextToDisplay  
   Next hh  
 
Выведет в окно отладки VBE адреса ячеек активного листа, содержащих гипперссылки, сами гиперссылки (адреса), и видимый в ячейках текст.
 
{quote}{login=genyaa}{date=28.09.2007 08:33}{thema=}{post}В VBA (макросы) можно обратиться к коллекции Hyperlinks и работать с ней. Она содержит все гиперссылки листа:  
 
   Dim hh As Hyperlink  
   For Each hh In ActiveSheet.Hyperlinks  
       Debug.Print hh.Range.Address, hh.Address, _  
           hh.TextToDisplay  
   Next hh  
 
Выведет в окно отладки VBE адреса ячеек активного листа, содержащих гипперссылки, сами гиперссылки (адреса), и видимый в ячейках текст.{/post}{/quote}  
 
спасибо, что задали направление, но все это темный лес.  
буду искать литературу
 
{quote}{login=}{date=29.09.2007 06:39}{thema=Re: }{post} задали направление, но все это темный лес.  
буду искать литературу{/post}{/quote}  
 
Уважаемый genyaa дал Вам ответ на Ваш вопрос.  
Литература/статьи — это всё точно не помешает. Но скажите, когда Вы задавали вопрос, что Вы хотели получить? Хотите готовый макрос, который просто напросто удалит ВСЕ гиперссылки?    
вот готовый макрос, который удаляет все гиперссылки на эл.почту (mailto:...)  
 
Sub RemoveAll_HLink_MailTo()  
Dim hh As Hyperlink  
For Each hh In ActiveSheet.Hyperlinks  
  If InStr(hh.Address, "mailto:") = 1 Then  
    hh.Delete  
  End If  
Next hh  
End Sub
 
{quote}{login=Serge Bliznykov}{date=29.09.2007 11:10}{thema=}{post}{quote}{login=}{date=29.09.2007 06:39}{thema=Re: }{post} задали направление, но все это темный лес.  
буду искать литературу{/post}{/quote}  
 
Уважаемый genyaa дал Вам ответ на Ваш вопрос.  
Литература/статьи — это всё точно не помешает. Но скажите, когда Вы задавали вопрос, что Вы хотели получить? Хотите готовый макрос, который просто напросто удалит ВСЕ гиперссылки?    
вот готовый макрос, который удаляет все гиперссылки на эл.почту (mailto:...)  
 
Sub RemoveAll_HLink_MailTo()  
Dim hh As Hyperlink  
For Each hh In ActiveSheet.Hyperlinks  
  If InStr(hh.Address, "mailto:") = 1 Then  
    hh.Delete  
  End If  
Next hh  
End Sub{/post}{/quote}  
 
да верно  
и я даже уже нашел то куда меня послали  
благодарю
 
но блин, видимо мне нужно поискать место  
где не будут удивляться моему невежеству :)  
 
может с экономите мне время, дайте ссылку на книгу для начинающих, на русском плз...
 
Удаление гиперссылок в выделенном диапазоне - штатная функция PLEX:  
http://www.planetaexcel.ru/plex_features.php#21  
Если с макросами и VBA тяжко, то лучше качнуть демо-версию PLEX и поубивать ссылки с ее помощью.
 
{quote}{login=Serge Bliznykov}{date=29.09.2007 11:10}{thema=}{post}{quote}{login=}{date=29.09.2007 06:39}{thema=Re: }{post} задали направление, но все это темный лес.  
буду искать литературу{/post}{/quote}  
 
Уважаемый genyaa дал Вам ответ на Ваш вопрос.  
Литература/статьи — это всё точно не помешает. Но скажите, когда Вы задавали вопрос, что Вы хотели получить? Хотите готовый макрос, который просто напросто удалит ВСЕ гиперссылки?    
вот готовый макрос, который удаляет все гиперссылки на эл.почту (mailto:...)  
 
Sub RemoveAll_HLink_MailTo()  
Dim hh As Hyperlink  
For Each hh In ActiveSheet.Hyperlinks  
  If InStr(hh.Address, "mailto:") = 1 Then  
    hh.Delete  
  End If  
Next hh  
End Sub{/post}{/quote}  
 
удалось запустить ваш скрипт :)  
все ссылки удалились  
 
но мне хотелось бы прежде их найти  
или какую-то статистику увидеть  
ну вроде типа количество, адрес(где находится)  
 
такое возможно? в смысле есть ли готовый макрос, или нужно творить(писать) его?
 
{quote}{login=}{date=30.09.2007 06:31}{thema=Re: }{post}  
но мне хотелось бы прежде их найти  
или какую-то статистику увидеть  
ну вроде типа количество, адрес(где находится)  
 
такое возможно? в смысле есть ли готовый макрос, или нужно творить(писать) его?{/post}{/quote}  
 
вы таки будете смеяться... но самый первый скрипт от многоуважаемого Genyaa именно это и делал!!! Чтобы увидеть результат его работы, нужно было в редакторе скриптом нажать Ctrl-G, откроется окно Immediate    
результаты Debug.Print попадают в это окно!  
 
впрочем, написать такой скрипт - пять минут.  
вот, создаёт отдельный лист с именем "Вот списочек гиперссылочек" (ВНИМАНИЕ! Перед выполнением скрипт удалите или переименуйте, если уже есть такой лист!!)  
 
 
Sub ListAllHyperLinks()  
 Dim OldSheet, NewSheet As Worksheet  
 Dim i As Integer  
 Dim hh As Hyperlink  
   
 Set OldSheet = ActiveSheet  
 Set NewSheet = Sheets.Add  
 NewSheet.Name = "Вот списочек гиперссылочек"  
 OldSheet.Activate  
 i = 2  
 For Each hh In ActiveSheet.Hyperlinks  
   NewSheet.Cells(i, 1).Value = hh.Range.Address  
   NewSheet.Cells(i, 2).Value = hh.Address  
   NewSheet.Cells(i, 3).Value = hh.TextToDisplay  
   i = i + 1  
 Next hh  
   
 Set NewSheet = Nothing  
End Sub
Страницы: 1
Читают тему
Наверх