小编Gar*_*ryC的帖子

如何通过VBA读取和修改XML文件?

我已经15年没有编程任何程序了,但是在过去的一个月中,我为我创建了其他人想使用的Excel VBA程序。我希望能做些事情来验证他们的许可证仍然有效。我当时在想,它可以引用XML文件以查看许可证是否仍然有效,并可能将一些内容写入XML文件,因此我知道他们使用了它。

这是我的XML文件(当然会更长,但这涵盖了它)。我的目标是在客户付款时更新XML文件。请注意文件中显示的是“八月”。到了9月,该程序将无法运行,因为我输入的代码与VBA文件中的9月代码不匹配。一旦他们付款,我将更新XML文件中的代码,然后当他们运行该文件时,它将起作用。

我可以将整个XML文件放在一个消息框中,但是我不知道如何搜索代理商名称,然后获取月份和代码进行验证。我想我希望VBA宏读取XML文件,例如,在找到“代理名称2”时搜索“代理名称2”,以获取日期和代码。验证此日期和代码是否与VBA文件中的预期值匹配,然后它将允许其余的子程序运行。同时,我希望它可以将日期,时间和其他一些东西放回XML文件中,以查看他们最后一次使用它的时间。

我知道这不是一个很好的安全性,因为如果他们只能通过密码,就可以更改脚本来避免这种情况,但这是可以的。

下面是XML,下面是让我了解XML内在内容的msgbox的子项,但是我不知道如何搜索或编写上面我在想的内容。请给我一些建议。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns:xsi="www.example.com /2001/XMLSchema-instance">
<record>
  <Agency>Agency Name 1</Agency>
  <Date>August</Date>
  <Code>code to give</Code>
</record>
<record>
  <Agency>Agency Name 2</Agency>
  <Date>August</Date>
  <Code>code to give</Code>
</record>
</data-set>
Run Code Online (Sandbox Code Playgroud)
Dim xmlhttp As Object
Dim myUrl As String

Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")

myUrl = "www.example.com/myfile.xml"
xmlhttp.Open "Get", myUrl, False
xmlhttp.send

MsgBox (xmlhttp.responsetext)
Run Code Online (Sandbox Code Playgroud)

xml vba

5
推荐指数
1
解决办法
2924
查看次数

标签 统计

vba ×1

xml ×1