Страницы: 1
RSS
поиск битых ссылок в массиве
 
Добрый день.    
1. Существует ли возможность в Excel, обнаруживать битые ссылки на сетевый файлы из таблицы. И выделять их цветом, например. Или что то аналогичное?
 
Вроде, все ссылки на сетевые файлы начинаюстя с \\    
Так ли это?  
 
Если так, то можно либо самому найти эти ссылки через поиск (Ctrl+F), либо написать макрос, который найдет все эти ссылки и пометит эти ячейки цветом.
 
{quote}{login=Pavel55}{date=15.09.2008 05:15}{thema=}{post}Вроде, все ссылки на сетевые файлы начинаюстя с \\    
Так ли это?  
 
Если так, то можно либо самому найти эти ссылки через поиск (Ctrl+F), либо написать макрос, который найдет все эти ссылки и пометит эти ячейки цветом.{/post}{/quote}  
 
 
Всё верное, ссылки начинаются с \\...  
Задача заключается не в поиске ссылок, а поиске не работающих ссылок. Что-то типо простукивалки.    
У меня есть таблица, в таблице есть много ссылок на различные ресурсы сети (которые начинаются на \\...). Периодически файлы на сети удаляют, заменяют, переименовывают. Нужно как-то определить что ссылка которая стоит, она больше не работает и её нужно обновить или удалить. Таких ссылок много и каждую тестировать в ручную нет возможности =(
 
А если так? )  
 
Sub Макрос1()  
Dim Rng As Range  
   Set Rng = Cells.SpecialCells(xlCellTypeFormulas, 16)  
   Rng.Interior.ColorIndex = 6  
End Sub  
 
P.S. Правда тут выделятся все ячейки с ошибками. Но я надеюсь, что кроме битых ссылок у вас других ошибок на листе не очень много )))
 
Боюсь битую ссылку не покажет ошибкой, если ее (ссылку) не обновить, а если обновить, то запросит обновить имя файла и при отсутсвии покажет #ССЫЛКА. Но при этом вся книга может пойти ошибками, если ссылается на эту ячейку.  
Вот такой код:  
Sub li()  
aLinks = ThisWorkbook.LinkSources()  
If Not IsEmpty(aLinks) Then  
   For i = 1 To UBound(aLinks)  
     If Dir(aLinks(i)) = "" Then  
       y = Mid(aLinks(i), 1, InStrRev(aLinks(i), "\")) & "[" & Mid(aLinks(i), InStrRev(aLinks(i), "\") + 1)
       For Each sh In ThisWorkbook.Worksheets  
         For Each cc In sh.UsedRange  
           If InStr(1, cc.Formula, y) > 0 Then cc.Interior.ColorIndex = 6  
         Next  
       Next  
     End If  
   Next  
End If  
End Sub  
Закрасит все ячейки с битыми ссылками в желтый
Страницы: 1
Читают тему
Loading...