Уважаемы коллеги! Кто знает, существует ли какой-нибудь способ проверить, не вернёт ли гиперссылка ошибку 404 без использования FollowHyperlink? Гиперссылок потенциально может быть довольно много, скорость не особо важна.
Уважаемы коллеги! Кто знает, существует ли какой-нибудь способ проверить, не вернёт ли гиперссылка ошибку 404 без использования FollowHyperlink? Гиперссылок потенциально может быть довольно много, скорость не особо важна.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Доброе время суток У объекта Worksheet есть коллекция Hyperlinks, у каждого члена коллекции есть свойство Address. Проверяете, что начало или http:// или https:// , если без полного определения, то положим все ссылки ведут в Web И такой функцией проверяете, что вернёт [vba]
Код
Public Function testUrl(ByVal thisUrl As String) As Long Dim pHttp As Object Set pHttp = CreateObject("Msxml2.XMLHTTP") pHttp.Open "GET", thisUrl pHttp.send Do Until pHttp.readyState = 4 'можно вписать проверку на выход за временные рамки DoEvents Loop testUrl = pHttp.Status End Function
[/vba] Для примера [vba]
Код
Public Sub test() Debug.Print testUrl("http://www.excelworld.ru/forum/10-38166-100") Debug.Print testUrl("http://www.excelworld.ru/forum/10-38166-1") End Sub
[/vba] Успехов.
Доброе время суток У объекта Worksheet есть коллекция Hyperlinks, у каждого члена коллекции есть свойство Address. Проверяете, что начало или http:// или https:// , если без полного определения, то положим все ссылки ведут в Web И такой функцией проверяете, что вернёт [vba]
Код
Public Function testUrl(ByVal thisUrl As String) As Long Dim pHttp As Object Set pHttp = CreateObject("Msxml2.XMLHTTP") pHttp.Open "GET", thisUrl pHttp.send Do Until pHttp.readyState = 4 'можно вписать проверку на выход за временные рамки DoEvents Loop testUrl = pHttp.Status End Function
[/vba] Для примера [vba]
Код
Public Sub test() Debug.Print testUrl("http://www.excelworld.ru/forum/10-38166-100") Debug.Print testUrl("http://www.excelworld.ru/forum/10-38166-1") End Sub