2014-05-08 39 views
0

我在vba編碼方​​面經驗不足,需要將xml文件中的值從excel表中拉出來。試圖在谷歌的幫助下進行編碼,但沒有成功。下面是我的XML文件從XML標籤獲取值到Excel工作表

<CRD> 
.. 
<PLAN>Plan01</PLAN> 
.. 
</CRD> 

下面是我的測試代碼:

代碼1

Private Sub RunTest_Click() 

Dim envFrmwrkPath As String 
Dim objfso, app, Eval As Object 

envFrmwrkPath = ActiveSheet.Range("E6").Value 

Set EnvVarXML = CreateObject("Microsoft.XMLDOM") 

EnvVarXML.Load (envFrmwrkPath & "CRD-0071709[1].xml") 

For Each UIElement In EnvVarXML.SelectNodes("//CRD") 
Set Field = Eval(objUIElement.SelectSingleNode("PLAN").Text) 
Sheet1.Cells(2, 2).Value = Field 
Next 

End Sub 

代碼2

Sub ImportXMLtoList() 

Dim xml_doc As New MSXML2.DOMDocument60 
Dim onode As MSXML2.IXMLDOMElement 
Dim chnode As MSXML2.IXMLDOMElement 
Dim brtn As Boolean 

brtn = xml_doc.Load("D:\Satheesh 244688\CI Team\Med D Formulary Testing\May 8th\CRD-0071709[1].xml") 

'Set onode = xml_doc.SelectSingleNode("/CRD") 

For Each onode In xml_doc.SelectSingleNode("//CRD") 

nm = onode.nodeName 
If nm = "RxPlanID" Then 
Sheet1.Cells(2, 2) = chnode.Text 
End If 

Next 

End Sub 

回答

1

目前尚不清楚如果XML你會使用如上,或者如果你將循環通過多個節點。

在Sheet1

使用單元格A2以下

<Root> 
<Row> 
<Name>John</Name> 
</Row> 
<Row> 
<Name>Anne</Name> 
</Row> 
</Root> 

XML並在單元格A1和 「安妮」 這VBA

Sub GetXML() 
    Dim myXML As Object 
    Dim myNodes As Object 
    Dim myNode As Object 
    Dim myRow As Integer 

    'Create xml object 
    Set myXML = CreateObject("MSXML2.DOMDocument.6.0") 

    myXML.Load "c:\data.xml"  'Change for your file path 

    'Check if valid XML 
    If myXML.parseError <> 0 Then 
     'Parse error, so show message 
     MsgBox "Something went wrong loading XML!" & vbCrLf & vbCrLf & myXML.parseError.reason 
     Exit Sub 
    End If 

    Set myNodes = myXML.SelectNodes("//Row") 
    myRow = 1 
    For Each myNode In myNodes 
     Sheet1.Cells(myRow, 1) = myNode.SelectSingleNode("Name").Text 
     myRow = myRow + 1 
    Next myNode 


End Sub 

看跌期權 「約翰」