将指定的 XPath 对象映射到 ListColumn 对象或 Range 集合。 如果 XPath 对象先前已被映射到 ListColumn 对象或 Range 集合,则 SetValue 方法将设置 XPath 对象的属性。
语法
表达式。SetValue (Map、 XPath、 SelectionNamespace、 Repeating)
表达 一个代表 XPath 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Map | 必需 | XmlMap | 将与映射区域相关联的映射信息。 |
XPath | 必需 | 字符串 | 一个有效的 XPath 表达式,指示 Excel 应在该映射区域中显示哪些 XML 数据。 XPath 字符串可能还包含有效筛选;在这种情况下,该映射区域只会显示 XPath 指向的数据的子集。 |
SelectionNamespace | 可选 | Variant | 指定 XPath 参数中使用的任何命名空间前缀。 如果 XPath 对象不包含任何前缀,或者 XPath 对象使用了 Microsoft Excel 内部前缀,将省略该参数。 |
Repeating | 可选 | Variant | 指定 XPath 对象是绑定到 XML 列表中的列还是映射到单个单元格。 设置为 True 会将 XPath 对象绑定到 XML 列表的某一列。 设置为 False 会强制创建不重复的单元格。 如果范围大于单个单元格,并且指定了 False ,则会发生运行时错误。 |
备注
有关 Excel 中 XPath 支持的讨论,请参阅 XMLMap 对象的 IsExportable 属性。 如果 XPath 表达式无效,或者指定的 XPath 已映射,则会发生运行时错误。
如果 Excel 无法解析命名空间,则会发生运行时错误。
如果满足以下任一条件,此方法将产生错误:
区域跨网格中的多个列。
区域的某个部分包含已经映射的单元格,剩余部分包含未映射的单元格。
区域的某一部分包含一个映射,而另一部分包含了不同映射或同一映射中的不同 XPath。
如果区域是单个单元格,则 Excel 默认创建一个映射的、非重复的映射单元格。 此不重复单元格无标题。
当单单元格区域位于 ListObject 中时,将发生上述语句的异常,在这种情况下,映射信息将应用于整个列。
如果区域跨越多个单元格,Excel 会创建重复的 XML 列表。 Excel 将所选区域视为所有数据值,因此在创建 XML 列表时,区域将向下移动一行,并将标题置于该区域顶部占用的单元格中。 插入行位于移动后的区域的底部。
注意
- 对象模型中不使用 Excel 的标题检测算法。 这里假设网格中不存在标题。
- 在对象模型中创建映射区域时,将禁用自动合并和自动扩大。
示例
以下示例基于附加到工作簿的联系人架构映射创建 XML 列表,然后使用 SetValue 方法将每列绑定到 XPath 对象。
Sub CreateXMLList()
Dim mapContact As XmlMap
Dim strXPath As String
Dim lstContacts As ListObject
Dim objNewCol As ListColumn
' Specify the schema map to use.
Set mapContact = ActiveWorkbook.XmlMaps("Contacts")
' Create a new list.
Set lstContacts = ActiveSheet.ListObjects.Add
' Specify the first element to map.
strXPath = "/Root/Person/FirstName"
' Map the element.
lstContacts.ListColumns(1).XPath.SetValue mapContact, strXPath
' Specify the second element to map.
strXPath = "/Root/Person/LastName"
' Add a column to the list.
Set objNewCol = lstContacts.ListColumns.Add
' Map the element.
objNewCol.XPath.SetValue mapContact, strXPath
strXPath = "/Root/Person/Address/Zip"
Set objNewCol = lstContacts.ListColumns.Add
objNewCol.XPath.SetValue mapContact, strXPath
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。