我正在尝试从
中读取以下XML ActiveCell.Value(XlRangeValueDataType.xlRangeValueMSPersistXML)
<xml xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<x:PivotCache>
<x:CacheIndex>1</x:CacheIndex>
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly">
<s:attribute type="Col1"/>
<s:extends type="rs:rowbase"/>
</s:ElementType>
<s:AttributeType name="Col1" rs:name="Field1">
<s:datatype dt:type="float"/>
</s:AttributeType>
</s:Schema>
<rs:data>
<z:row Col1="0.33333333333333331"/>
</rs:data>
</x:PivotCache>
</xml>
然而,使用以下代码,我正在努力获取
的内容Dim x As MSXML2.DOMDocument
Dim s As String
Dim p As IXMLDOMNode
s = ActiveCell.Value(XlRangeValueDataType.xlRangeValueMSPersistXML)
Set x = New MSXML2.DOMDocument
x.LoadXML (s)
Set p = x.FirstChild
<s:datatype dt:type="float"/>
和<z:row Col1="0.33333333333333331"/>
我似乎只能获得<x:PivotCache>
的回报。似乎只有一个孩子,从本地窗口看,我看不到其他的东西。
感谢。
答案 0 :(得分:0)
我尝试在powershell中进行操作只是为了看看如何浏览该方案....我不知道如何将其翻译成vba但这里是导航
对于<s:datatype dt:type="float"/>
,您可以使用类似
Set p = x.xml.PivotCache.Schema.Attributetype.datatype.type
或
Set p = x.PivotCache.Schema.Attributetype.datatype.type
对于<z:row Col1="0.33333333333333331"/>
,您可以使用类似
Set p = x.xml.PivotCache.data.row.Col1
或
Set p = x.PivotCache.data.row.Col1
我无法真正测试它,但希望这有助于......