Excel导入XML特定节点

我尝试导入一些特定的XML节点到Excel 2010中,但我得到一些错误。 我想用XML节点“Item”中的内容创build一个表格,以便于阅读。 但是还有一些问题,后面定义的错误,我不经常使用XML。 我的另一个想法是创build一个正则expression式导入节点,但我认为这不是一个好办法做到这一点,因为其中一些数据可能是巨大的,我认为这将是缓慢的regEx。

我会感谢任何想法让我的脚本工作。

这里是代码:

Sub read_XML() Dim objXML As Object, ListNode As Object, oNode As Object Dim sPath$ Dim rng As Range Dim nRow&, nCol& ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path sPath = Application.GetOpenFilename("XML-File (*.xml), *.xml") If sPath = CStr(False) Then Exit Sub With Tabelle1 Set rng = .Range("A:J") rng.Rows(2).Resize(.Rows.Count - 1).Clear End With Set objXML = CreateObject("MSXML2.DOMDocument") If objXML.Load(sPath) Then Set ListNode = objXML.SelectNodes("/SAMPLESET/SUMMARY/ITEM") 'all ITEMs nRow = 2 'first Row For Each oNode In ListNode For nCol = 1 To rng.Columns.Count If Not oNode.SelectSingleNode(rng.Cells(1, nCol)) Is Nothing Then rng.Cells(nRow, nCol) = oNode.SelectSingleNode(rng.Cells(1, nCol)).Text End If Next nRow = nRow + 1 'next Row Next End If End Sub 

这是错误:

该expression式不返回节点

在这里的XML:

 <?xml version="1.0" encoding="UTF-8" ?> <SAMPLESET> <CODEID>066</CODEID> <SAMPLEID/> <OPERATORID/> <PROGRAMNAME>myIso</PROGRAMNAME> <ENDSERIE>1</ENDSERIE> <SUMMARY> <ITEM> <PROPERTYID>1701</PROPERTYID> <PROPERTYNAME>Force CD</PROPERTYNAME> <UNIT>N</UNIT> <MEAN>180.0</MEAN> <MEDIAN>185.0</MEDIAN> <COV>17.0</COV> <STD>15.0</STD> <MIN>176.0</MIN> <MAX>189.0</MAX> <NOVALUES>2</NOVALUES> <VALUES>181.2,176.0,189.0</VALUES> </ITEM> <ITEM> <PROPERTYID>3701</PROPERTYID> <PROPERTYNAME>Force CD</PROPERTYNAME> <UNIT>N</UNIT> <MEAN>380.0</MEAN> <MEDIAN>385.0</MEDIAN> <COV>37.0</COV> <STD>35.0</STD> <MIN>376.0</MIN> <MAX>389.0</MAX> <NOVALUES>2</NOVALUES> <VALUES>381.2,376.0,389.0</VALUES> </ITEM> </SUMMARY> </SAMPLESET> 

我不明白什么错,任何想法什么是错的?