Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сопоставляет указанный объект XPath с объектом ListColumn или коллекцией Range . Если объект XPath ранее был сопоставлен с объектом ListColumn или коллекцией Range , метод SetValue задает свойства объекта XPath .
Синтаксис
выражение. SetValue (Map, XPath, SelectionNamespace, Repeating)
выражение Переменная, представляющая объект XPath .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| Map | Обязательный | XmlMap | Информация на карте, с которой будет связан сопоставленный диапазон. |
| XPath | Обязательный | String | Допустимое выражение XPath, сообщающее Excel, какие данные XML должны отображаться в сопоставленном диапазоне. Строка XPath также может содержать допустимые фильтры, и в этом случае только подмножество данных, на которые указывает XPath, когда-либо появится в этом сопоставленном диапазоне. |
| SelectionNamespace | Необязательный | Variant | Определяет все префиксы пространства имен, используемые в аргументе XPath . Этот аргумент можно опустить, если объект XPath не содержит префиксов или если объект XPath использует внутренние префиксы Microsoft Excel. |
| Repeating | Необязательный | Variant | Указывает, должен ли объект XPath быть привязан к столбцу в списке XML или сопоставлен с одной ячейкой. Установите значение True , чтобы привязать объект XPath к столбцу в списке XML. Ложь создает неповторяющуюся ячейку. Если диапазон больше одной ячейки и указано значение false , возникает ошибка во время выполнения. |
Примечания
См. свойство IsExportable объекта XMLMap для обсуждения поддержки XPath в Excel. Если выражение 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 и обратная связь.