Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Mapeia o objeto XPath especificado para um objeto ListColumn ou a coleção Range. Se o objeto XPath tiver sido mapeado anteriormente para o objeto ListColumn ou a coleção Range, o método SetValue definirá as propriedades do objeto XPath.
Sintaxe
mais simples. SetValue (Map, XPath, SelectionNamespace, Repeating)
expressão Uma variável que representa um objeto XPath .
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| Map | Obrigatório | XmlMap | As informações sobre mapas comas quais o intervalo mapeado estará associado. |
| XPath | Obrigatório | String | Uma expressão XPath válida que informa ao Excel quais dados XML devem aparecer neste intervalo mapeado. A cadeia de caracteres XPath também pode conter filtros válidos e, nesse caso, apenas um subconjunto dos dados para os quais o XPath aponta aparecerá nesse intervalo mapeado. |
| SelectionNamespace | Opcional | Variant | Especifica todos os prefixos de namespace usados no argumento XPath . Esse argumento poderá ser omitido se o objeto XPath não contiver nenhum prefixo, ou o objeto XPath usar os prefixos internos do Microsoft Excel. |
| Repeating | Opcional | Variant | Especifica se o objeto XPath deve ser associado a uma coluna em uma lista XML ou mapeado para uma única célula. Defina como True para vincular o objeto XPath a uma coluna em uma lista XML. False força a criação de uma célula que não se repete. Se o intervalo for maior que uma única célula e False for especificado, ocorrerá um erro em tempo de execução. |
Comentários
Consulte a propriedade IsExportable do objeto XMLMap para obter uma discussão sobre o suporte ao XPath no Excel. Se a expressão XPath for inválida ou se o XPath especificado já tiver sido mapeado, ocorrerá um erro em tempo de execução.
Se o Excel não conseguir resolver o namespace, ocorrerá um erro em tempo de execução.
Esse método produzirá um erro se qualquer uma das seguintes condições for verdadeira:
O intervalo estende-se por múltiplas colunas na grade.
Parte do intervalo se estende por células já mapeadas e o resto por células não mapeadas.
Parte do intervalo se estende por um mapeamento e a outra parte do intervalo por um mapeamento diferente ou um XPath diferente do mesmo mapeamento.
Se o intervalo for uma única célula, o Excel usará como padrão a criação de uma célula mapeada de mapeamento único e não repetida. A célula que não se repete não recebe um cabeçalho.
A exceção à instrução anterior ocorre quando o intervalo de célula única está dentro de um ListObject, nesse caso, as informações de mapeamento são aplicadas a toda a coluna.
Se o intervalo se estender por várias células, o Excel criará uma lista XML repetida. O Excel trata o intervalo selecionado como todos os valores de dados, portanto, quando a lista XML é criada, o intervalo é deslocado para baixo em uma linha e o cabeçalho é colocado na célula ocupada pelo topo do intervalo. A linha inserida fica na parte inferior do intervalo deslocado.
Observação
- O algoritmo de detecção de cabeçalho do Excel não é usado no modelo de objeto. A suposição é de que não existem cabeçalhos na grade.
- A mesclagem automática e o crescimento automático são desativados ao criar intervalos mapeados no modelo de objeto.
Exemplo
O exemplo a seguir cria uma lista XML com base no mapa de esquema de Contatos que está anexado à pasta de trabalho e, em seguida, usa o método SetValue para associar cada coluna a um objeto 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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.