首先,我希望现在还没有问过这个问题。我进行了广泛的搜索,但可能错过了答案。我对VBA有点新手所以如果这是一个简单的问题,请记住这一点。
我在Excel中创建一个宏来解析HTML。
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>
**&#34; person levelx有&#34;无效&#34;如果该人尚未达到该级别,则附加到该级别。
我想循环通过人员班级,找到最高级别的人员级别&#39;无效。所以在这个例子中,我输出了人员等级2&#39;为约翰和&#39;人级别1&#39;对于鲍勃。
到目前为止,我已尝试了许多不同的迭代,但完全被卡住了。我想代码应该是这样的:
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
我的猜测是有一些指令可以转到集合中的下一个元素,但我无法让它工作。
提前致谢!