检查Excel中是否存在损坏的超链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查Excel中是否存在损坏的超链接相关的知识,希望对你有一定的参考价值。

我有一个很大的超链接列表(加上几个无意义的单元格),我需要检查。我需要知道哪些链接仍处于活动状态,哪些链接不再存在或返回404(或其他)错误。我一直在使用此条目中的建议:Sort dead hyperlinks in Excel with VBA?,它在一小部分链接中运行良好,其中一些我故意打破了自己。但是,现在我尝试在我的实际超链接列表中使用相同的宏,它根本不起作用!我手动检查了一些,发现404错误的链接。再一次,当我故意错误地输入其中一个地址时,它会选择它,但它不会在已经破坏的列表中找到任何地址。

我对宏来说是全新的,我真的在黑暗中磕磕绊绊。任何帮助/建议将非常感谢!

答案

我已经使用了一段时间,它一直在为我工作。

Sub Audit_WorkSheet_For_Broken_Links()

If MsgBox("Is the Active Sheet a Sheet with Hyperlinks You Would Like to Check?", vbOKCancel) = vbCancel Then

    Exit Sub

End If

On Error Resume Next
For Each alink In Cells.Hyperlinks
    strURL = alink.Address

    If Left(strURL, 4) <> "http" Then
        strURL = ThisWorkbook.BuiltinDocumentProperties("Hyperlink Base") & strURL
    End If

    Application.StatusBar = "Testing Link: " & strURL
    Set objhttp = CreateObject("MSXML2.XMLHTTP")
    objhttp.Open "HEAD", strURL, False
    objhttp.Send

    If objhttp.statustext <> "OK" Then

        alink.Parent.Interior.Color = 255
    End If

Next alink
Application.StatusBar = False
On Error GoTo 0
MsgBox ("Checking Complete!" & vbCrLf & vbCrLf & "Cells With Broken or Suspect Links are Highlighted in RED.")

End Sub
另一答案

指定实际地址代替alink或将alink定义为包含Web地址的变量。

另一答案

缺少变量定义,下面是工作代码的URL

Dim alink As Hyperlink
Dim strURL As String
Dim objhttp As Object

Bulk Url checker macro excel

以上是关于检查Excel中是否存在损坏的超链接的主要内容,如果未能解决你的问题,请参考以下文章

通过 Excel/Word 中的超链接打开的选项卡无法识别会话 cookie

如何在浏览器中打开Excel中的超链接

使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink

创建用于通过python访问多个excel表的超链接

QLabel 中的超链接和远程图像

将 Excel 范围内的超链接传输到 Outlook 电子邮件