Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从Excel中的URL列表生成网页标题_Vba_Url_Excel_Title - Fatal编程技术网

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

Vba 从Excel中的URL列表生成网页标题,vba,url,excel,title,Vba,Url,Excel,Title,我在Excel中有一列网站URL,我想自动检索每个URL的网页标题,并将它们放在第二个对应的列中 我没有任何VBA的经验,但我想用VBA来做这件事。有没有人能逐一列出完成这项工作的步骤?我应该粘贴什么代码,在哪里粘贴?如何将代码指向正确的列以获取URL,以及如何告诉它在哪里填充结果?如何运行代码 我认为这是一个普遍存在的问题,但是很多人没有使用现有的文档来解决这个问题,因为他们和我有相同的问题——他们不知道如何加载和运行脚本 任何帮助都将不胜感激!请尽可能详细。调整范围“A1:A10”以匹配您的

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

我没有任何VBA的经验,但我想用VBA来做这件事。有没有人能逐一列出完成这项工作的步骤?我应该粘贴什么代码,在哪里粘贴?如何将代码指向正确的列以获取URL,以及如何告诉它在哪里填充结果?如何运行代码

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

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

调整范围“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
Sub GetTitles()
Dim c作为范围,url作为字符串
对于范围内的每个c(“A1:A10”)。单元格
url=修剪(c.值)
如果LCase(url)像“http://*”那么
c、 偏移量(0,1).Value=GetTitle(url)
如果结束
下一个c
端接头
函数GetTitle(sURL作为字符串)
标题变暗为字符串,分辨率为字符串,位置1,位置2
作为对象的Dim objHttp
设置objHttp=CreateObject(“MSXML2.ServerXMLHTTP”)
objHttp.打开“GET”,sURL,False
objHttp.Send“”
res=objHttp.ResponseText
pos1=仪表(1,UCase(res),“”)
pos2=仪表(1,UCase(res),“”)
title=“”
如果pos1>0,pos2>0,则
pos1=pos1+Len(“”)
title=Mid(res,pos1,pos2-pos1)
如果结束
GetTitle=标题
端函数
调整范围“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
Sub GetTitles()
Dim c作为范围,url作为字符串
对于范围内的每个c(“A1:A10”)。单元格
url=修剪(c.值)
如果LCase(url)像“http://*”那么
c、 偏移量(0,1).Value=GetTitle(url)
如果结束
下一个c
端接头
函数GetTitle(sURL作为字符串)
标题变暗为字符串,分辨率为字符串,位置1,位置2
作为对象的Dim objHttp
设置objHttp=CreateObject(“MSXML2.ServerXMLHTTP”)
objHttp.打开“GET”,sURL,False
objHttp.Send“”
res=objHttp.ResponseText
pos1=仪表(1,UCase(res),“”)
pos2=仪表(1,UCase(res),“”)
title=“”
如果pos1>0,pos2>0,则
pos1=pos1+Len(“”)
title=Mid(res,pos1,pos2-pos1)
如果结束
GetTitle=标题
端函数

google为此给了我不少点击率,例如,或者尝试使用其中一种方法,如果遇到问题,请用代码发回。我将代码粘贴到模块中,但我看不到一种方法来告诉它要读取哪个列以及要输入哪个列。当我运行代码时,什么也没发生。这就是为什么我希望为那些不懂VBA的人提供一场一场的建议,告诉他们我应该读哪个列(哪个列包含域名)以及应该输出到哪个列(产生的标题?谢谢你的帮助!谷歌搜索为此给了我不少点击率,例如,或者尝试使用其中一种方法,如果遇到问题,用你的代码发回。我将代码粘贴到一个模块中,但我看不到一种方法来告诉它读哪一列和输入哪一列。当我运行代码时,没有任何结果。)pens。这就是为什么我希望为那些不懂VBA的人提供一场一场的游戏。关于我如何告诉它读哪一列(哪一列包含域名)和输出到哪一列(产生的标题?谢谢你的帮助!