从Excel中的URL列表生成网页标题

时间:2014-03-24 22:26:37

标签: excel vba url excel-vba title

我在网站网址的Excel中有一列,并希望自动检索每个网址的网页标题,并将它们放在第二个相应的列中。

我对VBA没有任何经验,但是想使用VBA来做这件事。有人可以逐一列出步骤来完成这项工作吗?我粘贴什么代码,在哪里?如何将代码指向右侧列以获取URL,如何告知其填充结果的位置?我该如何运行代码?

我认为这是一个很受欢迎的问题,但很多人不会使用现有的文档来解决它,因为它们和我有同样的问题 - 他们不知道如何加载和运行脚本

任何帮助将不胜感激!请尽可能详细。

1 个答案:

答案 0 :(得分:4)

调整范围“A1:A10”以匹配您的数据....

Sub GetTitles()
    Dim c As Range, url As String
    For Each c In Range("A1:A10").Cells
        url = Trim(c.Value)
        If LCase(url) Like "http://*" Then
            c.Offset(0, 1).Value = GetTitle(url)
        End If
    Next c
End Sub

Function GetTitle(sURL As String)
    Dim title As String, res As String, pos1, pos2
    Dim objHttp As Object
    Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
    objHttp.Open "GET", sURL, False
    objHttp.Send ""

    res = objHttp.ResponseText
    pos1 = InStr(1, UCase(res), "<TITLE>")
    pos2 = InStr(1, UCase(res), "</TITLE>")

    title = "<not found>"
    If pos1 > 0 And pos2 > 0 Then
        pos1 = pos1 + Len("<TITLE>")
        title = Mid(res, pos1, pos2 - pos1)
    End If
    GetTitle = title
End Function