如何使用VBA获取web元素

如何使用VBA获取web元素,vba,excel,web,Vba,Excel,Web,我基本上希望能够阅读球员排名使用VBA在Excel中,但还没有能够得到它的工作。我得到一个值错误,不知道为什么。我对VBA只有非常基本的了解,所以请耐心等待 因此,我将代码更改为如下所示,但在excel中运行时,它返回的值为0。当我重新启动excel时,Nevermind不工作。谢谢你的帮助 Function player_battlerank(player_name As String) start1: Set objhttp1 = New WinHttp.WinHttpRequest

我基本上希望能够阅读球员排名使用VBA在Excel中,但还没有能够得到它的工作。我得到一个值错误,不知道为什么。我对VBA只有非常基本的了解,所以请耐心等待

因此,我将代码更改为如下所示,但在excel中运行时,它返回的值为0。当我重新启动excel时,Nevermind不工作。谢谢你的帮助

    Function player_battlerank(player_name As String)
start1:
Set objhttp1 = New WinHttp.WinHttpRequest
Dim doc1 As MSHTML.HTMLDocument
objhttp1.Open "GET", "http://ps2.fisu.pw/player/?name=" & player_name, True
objhttp1.send

objhttp1.waitforresponse

If objhttp1.status <> 200 Then GoTo start1
Set doc1 = New MSHTML.HTMLDocument
doc1.body.innerHTML = objhttp1.responseText

Set obj1 = doc1.getelementbyid("stat_overview")
For Each obj3 In obj1.getelementsbytagname("div")
    If obj3.innerText Like "*BATTLE RANK*" Then
        player_battlerank = obj3.getelementsbytagname("b")(0).innerText
        Exit Function
    End If
Next obj3
End Function
Function player\u battlerank(玩家名称为字符串)
start1:
设置objhttp1=New WinHttp.WinHttpRequest
Dim doc1作为MSHTML.HTMLDocument
objhttp1.打开“获取”http://ps2.fisu.pw/player/?name=“&player\u name,True”
objhttp1.send
objhttp1.waitforresponse
如果objhttp1.status 200,则转到start1
Set doc1=New MSHTML.HTMLDocument
doc1.body.innerHTML=objhttp1.responseText
设置obj1=doc1.getelementbyid(“状态概述”)
对于obj1.getelementsbytagname(“div”)中的每个obj3
如果obj3.innerText像“*战斗等级*”那么
player_battlerank=obj3.getelementsbytagname(“b”)(0.innerText
退出功能
如果结束
下一个obj3
端函数

类似的方法应该可以:

'....
Set doc1 = New MSHTML.HTMLDocument
doc1.body.innerHTML = objhttp1.responseText

Set obj1 = doc1.getelementbyid("stat_overview")
For Each obj3 In obj1.getelementsbytagname("div")
    If obj3.innerText Like "*BATTLE RANK*" Then
        player_rank = obj3.getelementsbytagname("b")(0).innerText
        Exit Function
    End If
Next obj3
'....

您从何处获得值错误?也就是说,哪条线路不工作?你有什么意见?(举一个“player_name”的例子)您可能想为obj1.getelementsbytagname(“div”)中的每个obj3编写