vba - XslCompiledTransform - 使用 XSLT 样式表转换 XML 时出现编译错误

标签 vba excel

我正在尝试在 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/

相关文章:

vba - 将信息从一个选项卡拉到另一个选项卡

excel - 从值表中创建值列表并排除某些值

arrays - Excel VBA 创建列表并仅添加唯一术语

vba - 从用户窗体监视类事件

debugging - 单步执行使用“运行应用程序”复制粘贴并执行的宏代码

c# - 如何使用 OleDB 避开 Excel 文件中的空行?

excel - 根据参数从 Access 表导入 Excel

vba - 简单替换功能不适用于度数符号

Python:用于运行 Excel VBA 脚本的脚本未运行

excel - 从 Excel VBA 打印到 DYMO 打印机