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

use*_*094 0 url excel vba title excel-vba

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

我没有使用VBA的任何经验,但想使用VBA进行此操作。有人可以一步一步列出完成此操作的步骤吗?我要粘贴什么代码,在哪里?如何将代码指向右列以选择URL,如何告诉它在哪里填充结果?如何运行代码?

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

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

Tim*_*ams 5

调整范围“ 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
Run Code Online (Sandbox Code Playgroud)