我正在尝试使用Excel VBA创建自定义XML地图。我的XML文件是BookData.xml
:
<?xml version='1.0'?>
<BookInfo>
<Book>
<ISBN>989-0-487-04641-2</ISBN>
<Title>My World</Title>
<Author>Nancy Davolio</Author>
<Quantity>121</Quantity>
</Book>
<Book>
<ISBN>981-0-776-05541-0</ISBN>
<Title>Get Connected</Title>
<Author>Janet Leverling</Author>
<Quantity>435</Quantity>
</Book>
<Book>
<ISBN>999-1-543-02345-2</ISBN>
<Title>Honesty</Title>
<Author>Robert Fuller</Author>
<Quantity>315</Quantity>
</Book>
</BookInfo>
我在Excel 2013中的VBA代码是:
Sub Create_XSD()
Dim StrMyXml As String, MyMap As XmlMap
Dim StrMySchema As String
StrMyXml = "< BookInfo >"
StrMyXml = StrMyXml & "<Book>"
StrMyXml = StrMyXml & "<ISBN>Text</ISBN>"
StrMyXml = StrMyXml & "<Title>Text</Title>"
StrMyXml = StrMyXml & "<Author>Text</Author>"
StrMyXml = StrMyXml & "<Quantity>999</Quantity>"
StrMyXml = StrMyXml & "</Book>"
StrMyXml = StrMyXml & "<Book></Book>"
StrMyXml = StrMyXml & "</ BookInfo >"
' Turn off async loading.
Application.DisplayAlerts = False
' Add the string to the XmlMaps collection.
Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml)
Application.DisplayAlerts = True
' Create an empty file and output the schema.
StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML
Open "C:\Documents\MySchema.xsd" For Output As #1
Print #1, StrMySchema
Close #1
End Sub
返回错误:
在线:
Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml)
我正在尝试理解如何使用VBA构建自定义XML映射的逻辑,以便我可以在另一个(更复杂的)XML文件上使用它。我关注的代码是here。
那么,如何修复此错误?
答案 0 :(得分:1)
删除"</ BookInfo >"
答案 1 :(得分:1)
您必须删除第2行上的逗号(在 Dim StrMyXml As String 之后),并使用命令 Dim将该行的其余部分放入其自己的行>强大的>在它面前。
它应该是这样的:
Dim StrMyXml As String
Dim MyMap As XmlMap
答案 2 :(得分:0)
我遇到了同样的错误,BruceWayne的反应快速正确!
我删除了&lt; / BookInfo&gt;中的空格(第12行) 但是在&lt; BookInfo&gt; (第4行)
仅在&lt; / BookInfo&gt;中删除是不够的。