2013-10-07 28 views
0

我使用循環加載200個xml文件並且它可以工作。 當我使用Debug.Print xmldoc.text時,它使用xmldoc.text爲每個 xml文檔每次打印每行1次。這是我想要的,但我希望它 從最後一行開始加載電子表格中的每一行。現在使用最後一行加載 1行200次。我該如何做這項工作。Excel XML vba使用lastrow編寫一個XML文本節點到excel工作表

Sub ReadXMLDoc() 
    Sub LearnAboutNodes() 
     Dim xmldoc As MSXML2.DOMDocument50 
     Dim xmlNode As MSXML2.IXMLDOMNode 
     Dim LastRow as Long 
     Set xmldoc = New MSXML2.DOMDocument50 
     xmldoc.async = False 

     xmldoc.Load ("C:\yourFile.xml") 
     If xmldoc.hasChildNodes Then 
      Debug.Print "Number of child Nodes: " & xmldoc.childNodes.length 
      For Each xmlNode In xmldoc.childNodes 
       Debug.Print "Node name:" & xmlNode.nodeName 
       Debug.Print "Type:" & xmlNode.nodeTypeString & "(" & xmlNode.nodeType & ")" 
       Debug.Print "Text: " & xmlNode.Text 
       lastrow = cells(rows.count,1).end(xlup).row 
       Worksheets("Sheet2").Cells(1, lastrow).value = xmldoc.text 
      Next xmlNode 
     End If 
     Set xmlDoc = Nothing 
    End Sub 

    End If 
End Sub 
+0

你有一個掛在'你的代碼的結尾結束If'。 – gunr2171

回答

0

試着這麼做:

For Each xmlNode In xmldoc.childNodes 
    'Debug.Print "Node name:" & xmlNode.nodeName 
    'Debug.Print "Type:" & xmlNode.nodeTypeString & "(" & xmlNode.nodeType & ")" 
    'Debug.Print "Text: " & xmlNode.Text  
    With Worksheets("Sheet2") 
     lastrow = .Cells(.rows.count,1).End(xlup).Offset(1,0).row 
     .Cells(1, lastrow).value = xmlnode.text 
    End With 
Next