我在网站网址的Excel中有一列,并希望自动检索每个网址的网页标题,并将它们放在第二个相应的列中。
我对VBA没有任何经验,但是想使用VBA来做这件事。有人可以逐一列出步骤来完成这项工作吗?我粘贴什么代码,在哪里?如何将代码指向右侧列以获取URL,如何告知其填充结果的位置?我该如何运行代码?
我认为这是一个很受欢迎的问题,但很多人不会使用现有的文档来解决它,因为它们和我有同样的问题 - 他们不知道如何加载和运行脚本
任何帮助将不胜感激!请尽可能详细。
答案 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