我是学习XML的完全新手,但在Excel 2010中使用VBA可以。
在Excel VBA中,我创建了一个简单的CustomXMLPart
,在单个根目录下有5个节点,类似于以下示例:
<
<RefTest>
<sRef1>SomeText</sRef1> 'text
<sRef2>XYZ234</sRef2> 'text
<sRef3>ABC123</sRef3> 'text
<dRef4>25/02/1953</dRef4> 'date or text?
<iRef5>0</iRef5> 'numeric or text?
</RefTest>
>
这个工作正常,我可以使用VBA读回值。
我的问题是节点值(此刻)是以文字(文字和数字)输入的。
我希望能够在Excel VBA中更新这些节点值,但是使用VBA变量的内容。
因此,例如,用户在userform
文本框中输入一个值到一个变量(比如MyVar
),我想用这个变量的内容更新节点值。
一种“使用MyVar更新节点iRef5”。
我几乎找不到像这样更新XML值的引用,特别是在网上使用变量。
这可以在VBA内完成吗? 如果是这样,那么方法是什么,XML如何处理变量,也许是一个确切语法的例子。
非常感谢您的期待。
答案 0 :(得分:6)
我不知道你的xml会有什么结构。 但如果它只是这五个节点,也许这样的东西可能对你有帮助:
Sub XMLTest()
Dim myVar As String, pathToXML As String
Dim xmlDoc As Object, xmlRoot As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
pathToXML = "N:\example.xml" '<--- change the path
Call xmlDoc.Load(pathToXML)
Set xmlRoot = xmlDoc.getElementsByTagName("RefTest").Item(0)
myVar = "foobar" '<--- your value
xmlRoot.selectSingleNode("iRef5").Text = myVar
Call xmlDoc.Save(pathToXML)
End Sub
如果这对您没有帮助,您应该提供有关xml的更多信息以及您实际想要做的事情。