我可以使用VBA中的变量更新XML节点值

bar*_*ajo 3 xml excel vba

我是学习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>
>
Run Code Online (Sandbox Code Playgroud)

这工作正常,我可以使用VBA读回值.

我的问题是节点值(此刻)是以文字(文本和数字)输入的.

我希望能够从Excel VBA中更新这些节点值,但是使用VBA变量的内容.

因此,例如,用户将值输入userform文本框,输入变量(比如说MyVar),我想用该变量的内容更新节点值.一种"使用MyVar更新节点iRef5".我几乎找不到像这样更新XML值的引用,尤其是在Web上使用变量.

这可以在VBA内完成吗?如果是这样,那么方法是什么,XML如何处理变量,也许是一个确切语法的例子.

非常感谢您的期待.

MiV*_*oth 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
Run Code Online (Sandbox Code Playgroud)

如果这对您没有帮助,您应该提供有关xml的更多信息以及您实际想要做的事情.