VBA:从HTML到MsgBox检索标签值

我有以下HTML代码,我想从中检索数据:

<div class="span4"> <div> <label for="Game_type">Portal Games</label> XXX </div> <div> <label for="Game_Reference">Game reference</label> 22130903 </div> <div> <label for="Release_Date">Release Date</label> 2015-07-13 </div> <div> <label for="Prise">Prise</label> USD 90,00 </div> <div> <label for="Game_Rank">Game Rank</label> 4 </div> </div> 

我怎么能够获得所有这些标签值/至less一个值到MsgBox? (以后我会自己把它们input到Excel中)

我已经尝试使用下面的代码来获得第一个值:

 Dim IE As Object Set IE = CreateObject("INTERNETEXPLORER.APPLICATION") 'page address is stated in code IE.navigate "page name" IE.Visible = True While IE.Busy 'Wait until IE is busy and loading page DoEvents Wend Set gtype = IE.Document.getElementsByClassName("span4")(0).getElementsById("Game_type") GtypeValue = gtype.Value MsgBox (GtypeValue) End Sub 

我收到运行时错误“91:”

对象variables或With Blockvariables未设置。

150904希望最后一个问题,关于这个topic.Default代码看起来像

  strCont = objIE.Document.getElementsByClassName("span4")(0).innerHTML 

但我想有一个variables,而不是“span4”,在示例Dim1 =“span4”我状态如下:

 strCont = "objIE.Document.getElementsByClassName(" & Chr(34) & Dim1 & Chr(34) & ")(0).innerHTML" 

它不起作用,MsgBox中的空值。 我怎样才能确保这个刺将被视为精确的代码,以后在步骤中执行:

 Set objMatches = .Execute(strCont) 

为什么不尝试正则expression式parsing?

 Sub MsgGameType() Dim objIE As Object Dim strCont As String Dim objMatches As Object Dim objMatch As Object Set objIE = CreateObject("InternetExplorer.Application") 'page address is stated in code objIE.Navigate "page name" objIE.Visible = True Do While objIE.Busy Or Not objIE.readyState = 4 DoEvents Loop Do Until objIE.document.readyState = "complete" DoEvents Loop strCont = objIE.document.getElementsByClassName("span4")(0).innerHtml With CreateObject("VBScript.RegExp") .Global = True .MultiLine = True .IgnoreCase = False .Pattern = "<div>\s*<label for="".*?"">(.*?)</label>\s*(.+?)\s*?</div>" Set objMatches = .Execute(strCont) For Each objMatch In objMatches MsgBox objMatch.SubMatches(0) & " = " & objMatch.SubMatches(1) Next End With End Sub 

请参阅使用RegExp 免责声明的 XHTMLparsing。