Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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
expressão. SetValue (Mapa, XPath, SelectionNamespace, Repetição)
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 indica ao Excel que dados XML devem aparecer neste intervalo mapeado. A cadeia XPath também pode conter filtros válidos. Nesse caso, apenas um subconjunto dos dados a que o XPath aponta será apresentado neste intervalo mapeado. |
| SelectionNamespace | Opcional | Variant | Especifica os prefixos de espaço de nomes utilizados 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 vinculado a uma coluna numa 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 do que uma única célula e for especificado Falso , ocorre um erro de tempo de execução. |
Comentários
Veja a propriedade IsExportable do objeto XMLMap para um debate sobre o suporte do XPath no Excel. Se a expressão XPath for inválida ou se o XPath especificado já tiver sido mapeado, ocorre um erro de tempo de execução.
Se o Excel não conseguir resolve o espaço de nomes, ocorre um erro de tempo de execução.
Este método produz um erro se alguma 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 cria uma célula mapeada sem repetição e mapeada por predefinição. 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 se encontra dentro de um ListObject. Nesse caso, as informações de mapeamento são aplicadas a toda a coluna.
Se o intervalo abranger várias células, o Excel cria uma lista XML repetida. O Excel trata o intervalo selecionado como todos os valores de dados, por isso, quando a lista XML é criada, o intervalo é deslocado para baixo por uma linha e o cabeçalho é colocado na célula que a parte superior do intervalo ocupava. 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 seguinte cria uma lista XML com base no mapa de esquema Contactos anexado ao livro e, em seguida, utiliza o método SetValue para vincular 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.