用于获取URL状态代码的VBA脚本

时间:2017-01-10 19:14:19

标签: vba

所以,我有这个启用Excel宏的工作表,其中包含大约500个URL的列表。 (我们公司内部网上的所有页面。)

现在我们想要使用URL状态代码

检查有多少网址正常工作

但是,有一些好消息:重定向脚本不能在Excel中运行。如果单击Excel中的错误链接,则不会执行重定向脚本,并且会将HTTP响应报告回Excel。我相信Excel应该能够识别正确的HTTP响应代码(404) - 或者至少是否有效链接。

这让我想到了我的问题:

我已经传递了Winhttp请求对象以发送HTTP POST请求,并将request.status方法应用于获取URL的状态。

我得到了正确的输出,但我发现一些网址工作正常,但它在宏中显示404状态。

例:http://www.xroadscap.com

如果有人对VBA足够熟悉,建议解决这个问题,我将永远感激不尽!

这是我的VBA脚本。

Sub Macro1()

Dim source As Range, req As Object, url$

Dim rc As Integer

Set req = CreateObject("Msxml2.ServerXMLHTTP.6.0")
 Sheets("Sheet1").Select

  Set source = Range("A1:A1000")
  source.Columns(2).Clear

For i = 1 To source.Rows.Count

    url = source.Cells(i, 1)


    On Error Resume Next

    req.Open "HEAD", url, False

   req.SetRequestHeader "Accept", "image/webp,image/*,*/*;q=0.8"

    req.SetRequestHeader "Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6"

    req.SetRequestHeader "Accept-Encoding", "gzip, deflate"

    req.SetRequestHeader "Cache-Control", "no-cache"

    req.SetRequestHeader "Content-Type", "text/xml; charset=utf-8"

    req.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36"

 req.Send

source.Cells(i, 2) = req.Status





On Error GoTo 0
  Next




  MsgBox "Finished!"
End Sub

0 个答案:

没有答案