2013-07-31 40 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