2013-07-31 34 views
0

我有以下功能包括CDATA:VBA函数包括CDATA

Function cdatasection() 
    Dim objDom As DOMDocument 
    Dim objKMLRootelement As IKMLDOMElement 
    Dim objKMLelement As IKMLDOMElement 
    Dim cdata As IKMLDOMCDATASection 

    Set objDom = New DOMDocument 
    Set objKMLRootelement = objDom.createElement("BalloonStyle") 
    objDom.appendChild objKMLRootelement 
    Set objKMLelement = objDom.createElement("text") 
    objKMLRootelement.appendChild objKMLelement 
    Set cdata = objDom.createCDATASection("text") 
    cdata.Data = "<![CDATA[<b>Latitude = $[latitude]</b>?]]>;" 
End Function 

当我运行上面,我得到这个错误“用户定义的数据类型未找到”的功能。

+0

您需要为您的项目添加引用,或者将项目声明为对象并使用CreateObject来设置它们。 – Ripster

+0

什么是IKMLDOMElement?你的意思是'IXMLDOMElement'?另外,你的函数不会返回任何值。 –

回答

0

是的,因为Ripster说找到图书馆的参考。从VBA窗口工具>参考

相关参考文献见列表...

http://msdn.microsoft.com/en-us/library/windows/desktop/ms763701%28v=vs.85%29.aspx

不过,如果你有一个很难追查参考,更换所有Dim报表及Set objDom = New DOMDocument到...

Dim objDom as Object 
Set objDom = CreateObject("Microsoft.XMLDOM") ' EDIT: If this does not work, try... 
'Set objDom = CreateObject("MSXML22.DOMDocument.6.0") 


Dim objKMLRootelement As Object 
Dim objKMLelement As Object  
Dim cdata As Object 
+0

'Set objDOM = CreateObject(“MSXML2.DOMDocument60”)'surely? 'Microsoft'命名空间早于'MSXML2' - 参见[here](http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in -internet-explorer.aspx) – barrowc

+0

是的,假设他有Vista并且应该可以工作。请参阅编辑。 – wesmantooth