我正在尝试在 Excel 中获取一张表并使用 VBA 创建一个 XML 文档,然后使用 XSLT 样式表转换该文档。
我已经包含了下面的代码,直到我遇到问题为止。
当我尝试像这样创建一个对象时:
Dim transformer As XslCompiledTransform ' transform document
我收到此错误:
Compile Error: User defined type - not defined
我以前在定义时遇到过这个错误
Dim objDom As DOMDocument
但引用 this question为我解决了这个问题。但是,对于这种情况,我找不到类似的东西。
有人可以向我解释是否有我需要包含的引用资料以及将来如何找到这些引用资料吗?
注意:我在 Excel 2003 中使用 Visual Basic 编辑器来创建这个 VBA 宏
Sub CreateXML()
'Variable to hold all rows in excel file
Dim rows As Variant
'Variables used to iterate through row array
Dim i As Integer
Dim j As Integer
'Create objects for manipulating XML
Dim objDom As DOMDocument
Dim objXMLRootelement As IXMLDOMElement
Dim objXMLelement As IXMLDOMElement
Dim objXMLattr As IXMLDOMAttribute
'Represents the top level of the XML source
Set objDom = New DOMDocument
'~~> Creates root element
Set objXMLRootelement = objDom.createElement("Project")
objDom.appendChild objXMLRootelement
'~~> Saves XML data to a file
objDom.Save ("C:\Users\JSLAMKIN\Desktop\test.xml")
'Create an instance of the DOMDocument class:
Dim xDoc As DOMDocument
Set xDoc = New DOMDocument
'Create the file as output
Dim output As DOMDocument
Dim transformer As XslCompiledTransform ' transform document
...
最佳答案
XslCompiledTransform
是一个 .NET 类,没有出现在 VBA 可以引用的“MSXML, v6.0”库中
有关如何使用“MSXML, v6.0”库执行 XSLT 转换的详细信息是 here
另外,DOMDocument
是旧的 DOMDocument30
的同义词从“MSXML,v3.0”中输入。 "MSXML, v6.0"的正确类型是 DOMDocument60
.关于为什么会这样的详细信息是 here
关于vba - XslCompiledTransform - 使用 XSLT 样式表转换 XML 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860336/