Vba 如何从XML标记到Excel工作表中获取值?
我在vba编码方面缺乏经验,需要将xml文件中的值提取到excel工作表中。试图在谷歌的帮助下编写代码,但没有成功。下面是我的xml文件Vba 如何从XML标记到Excel工作表中获取值?,vba,excel,Vba,Excel,我在vba编码方面缺乏经验,需要将xml文件中的值提取到excel工作表中。试图在谷歌的帮助下编写代码,但没有成功。下面是我的xml文件 <CRD> .. <PLAN>Plan01</PLAN> .. </CRD> 代码2 Sub ImportXMLtoList() Dim xml_doc As New MSXML2.DOMDocument60 Dim onode As MSXML2.IXMLDOMElement Dim chnode As M
<CRD>
..
<PLAN>Plan01</PLAN>
..
</CRD>
代码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
不清楚您将使用的xml是否如上所述,或者是否将在多个节点之间循环 使用下面的xml
<Root>
<Row>
<Name>John</Name>
</Row>
<Row>
<Name>Anne</Name>
</Row>
</Root>
约翰
安妮
这是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
Sub-GetXML()
Dim myXML作为对象
将myNodes设置为对象
将myNode设置为对象
将myRow设置为整数
'创建xml对象
设置myXML=CreateObject(“MSXML2.DOMDocument.6.0”)
加载文件路径的“c:\data.xml”更改
'检查XML是否有效
如果myXML.parseError为0,则
'分析错误,因此显示消息
MsgBox“加载XML时出错!”&vbCrLf&vbCrLf&myXML.parseError.reason
出口接头
如果结束
设置myNodes=myXML.SelectNodes(//行)
myRow=1
对于myNodes中的每个myNode
Sheet1.单元格(myRow,1)=myNode.选择SingleNode(“名称”).文本
myRow=myRow+1
下一个myNode
端接头
将“John”和“Anne”分别放在表格1的A1和A2单元格中
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