Excel VBA代码不';我不能始终如一地工作

Excel VBA代码不';我不能始终如一地工作,excel,vba,Excel,Vba,我不熟悉使用VBA。我正试图正确地使用它。我有这个代码,它似乎在第一次的时候就工作得很好,但是我不能让它再次工作。我正在尝试进入篮球比赛的比赛摘要页面。如果我能得到一些帮助,我将不胜感激 Sub Test() Dim URL As String Dim IE As InternetExplorer Dim HTMLdoc As HTMLDocument Dim TDelements As IHTMLElementCollection Dim TDeleme

我不熟悉使用VBA。我正试图正确地使用它。我有这个代码,它似乎在第一次的时候就工作得很好,但是我不能让它再次工作。我正在尝试进入篮球比赛的比赛摘要页面。如果我能得到一些帮助,我将不胜感激

Sub Test()
    Dim URL As String
    Dim IE As InternetExplorer
    Dim HTMLdoc As HTMLDocument
    Dim TDelements As IHTMLElementCollection
    Dim TDelement As HTMLTableCell
    Dim i As Integer

    URL = "http://www.flashscore.com/basketball/"
    Set IE = New InternetExplorer

    With IE
        .Navigate URL
        .Visible = True
        While .Busy Or .ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
        Set HTMLdoc = .Document
    End With

    Set TDelements = HTMLdoc.getElementsByTagName("td")
    For Each TDelement In TDelements
        If TDelement.Title = "Click for match detail!" Then
            TDelement.Click
        End If
    Next
End Sub
子测试()
将URL设置为字符串
Dim IE作为InternetExplorer
将HTMLdoc设置为HTMLDocument
将TDI元件变暗为IHTMLELELEmentCollection
作为HTMLTableCell的Dim TDelement
作为整数的Dim i
URL=”http://www.flashscore.com/basketball/"
Set IE=新的InternetExplorer
与IE
.浏览网址
.Visible=True
当.Busy或.ReadyState时ReadyState\u完成:DoEvents:Wend
设置HTMLdoc=.Document
以
Set TDelements=HTMLdoc.getElementsByTagName(“td”)
对于TDelements中的每个TDelement
如果TDelement.Title=“单击以获取匹配详细信息!”则
TDelement。单击
如果结束
下一个
端接头
尝试使用此

Dim IE as Object
Set IE = CreateObject("InternetExplorer.Application")     

--更正

只需稍加调整,您的代码实际上看起来不错-请确保添加:

IE.Quit
Set IE = Nothing
End Sub
否则多个IE实例将隐藏在后台-其他人建议使用CreateObject(“InternetExplorer.Application”),但我更喜欢使用您使用的方法,这样您就有了一个真正的InternetExplorer对象,您可以在必要时查看其方法和属性

我运行了它,没有得到错误,但也没有得到任何TDs来满足If条款-这可能是由于网站及其数据的时间安排,element.title不是我经常使用的属性,因此这可能是您的问题的根源,您应该重新检查您要满足If条款的属性

希望这有帮助,
silkcode

是否有任何错误?请解释它是如何不一致地工作的。当我第一次使用此代码时,它工作得非常完美,它将显示匹配摘要页面,但如果我再次尝试运行代码,则不会显示匹配摘要页面。