Excel VBA如何循环访问ClassName的子项

首先我希望这个问题没有被问到。 我已经广泛search,但可能错过了答案。 我是VBA的新手,所以请记住,如果这是一个简单的问题。

我正在Excel中创build一个macros来parsingHTML。

HTML示例

<div class="person"> <div class="person name"><John Doe></div> <div class="person level-1"></div> <div class="person level-2"></div> <div class="person level-3 invalid"></div> </div> <div class="person"> <div class="person name"><Bob Smith></div> <div class="person level-1"></div> <div class="person level-2 invalid"></div> <div class="person level-3 invalid"></div> </div> 

**如果该人还没有达到这个水平,那么“人员等级x”就会附加一个“无效的”。

我想循环通过人员类,并find最高的“人的水平”,没有无效的。 所以在这个例子中,我会为John输出'person level-2',为Bob输出'person level-1'。

到目前为止,我已经尝试了许多不同的迭代,但完全卡住了。 我想代码应该是这样的:

 Dim person As MSHTML.IHTMLElement Dim persons As MSHTML.IHTMLElementCollection set persons = document.getElementsByClassName("person") PersonRowNum = 2 For each person in persons If person.getElementsByTagName("div") = "person level-2 invalid" Then Cells(PersonRowNum, 6) = "Person Level 1" PersonRowNum = PersonRowNum + 1 Else If person.getattribute("classname") = "person level-3 invalid" Then Cells(PersonRowNum, 6) = "Person Level 2" PersonRowNum = PersonRowNum + 1 Else Cells(PersonRowNum, 6) = "Person Level 3" PersonRowNum = PersonRowNum + 1 End If End If next person 

我的猜测是有一些指令去集合中的下一个元素,但我不能得到这个工作。

提前致谢!