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.
Retorna a posição relativa de um item em uma matriz que corresponde a um valor especificado em uma ordem especificada. Utilize Corresponder em vez de uma das funções de Pesquisa quando precisar da posição de um item num intervalo em vez do próprio item.
Sintaxe
expressão. Correspondência (Arg1, Arg2, Arg3)
expressão Uma variável que representa um objeto WorksheetFunction .
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| Arg1 | Obrigatório | Variant | Lookup_value: o valor que utiliza para localizar o valor que pretende numa tabela. |
| Arg2 | Obrigatório | Variant | Matriz_procurada: um intervalo contíguo de células que contêm os valores de pesquisa possíveis. Matriz_procurada deve ser uma matriz ou uma referência de matriz. |
| Arg3 | Opcional | Variant | Tipo_correspondência: o número -1, 0 ou 1. Match_type especifica como o Microsoft Excel encontra o Lookup_value correspondente em Lookup_array. |
Valor de retorno
Double
Comentários
Lookup_value é o valor que pretende corresponder no lookup_array. Por exemplo, quando procura um número numa lista telefónica, está a utilizar o nome da pessoa como o valor de pesquisa, mas o número de telefone é o valor pretendido.
Lookup_value pode ser um valor (número, texto ou valor lógico) ou uma referência de célula para um número, texto ou valor lógico.
Se match_type for 1, a função Corresponder localiza o maior valor que é menor ou igual a lookup_value. Lookup_array deverá ser posicionado em ordem crescente:...-2, -1, 0, 1, 2,..., A-Z, FALSE, TRUE.
Se match_type for 0, a função Match localiza o primeiro valor que é exatamente igual a lookup_value. Lookup_array poderá estar em qualquer ordem. Tenha em atenção que a opção Correspondência não é sensível a maiúsculas e minúsculas.
Se match_type for -1, a função Correspondência localiza o menor valor que é maior ou igual a lookup_value. Matriz_procurada deve ser colocada em ordem decrescente: VERDADEIRO, FALSO, Z-A... 2, 1, 0, -1, -2... e assim por diante.
Se match_type for omitido, será considerado 1.
A correspondência devolve a posição do valor correspondente dentro de lookup_array, não o próprio valor. Por exemplo, MATCH("b",{"a","b","c"},0) devolve 2, a posição relativa de "b" na matriz {"a","b","c"}.
A correspondência não distingue entre letras maiúsculas e minúsculas quando corresponde a valores de texto.
Se a função Match não conseguir encontrar uma correspondência, devolve o valor de erro #N/D.
Se match_type for 0 e se lookup_value for texto, então você poderá usar os caracteres curinga, o ponto de interrogação (?) e o asterisco (*), no lookup_value. Um ponto de interrogação corresponde a qualquer caractere único; um asterisco corresponde a qualquer sequência de caracteres. Se você quiser localizar um ponto interrogação ou asterisco real, digite um til (~) antes do caractere.
Exemplo
Para cada valor na primeira coluna da primeira planilha, este exemplo procura um valor correspondente na pasta de trabalho inteira. Se a macro encontrar um valor correspondente, ela definirá o valor original na primeira planilha em negrito.
Sub HighlightMatches()
Application.ScreenUpdating = False
'Declare variables
Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long, bln As Boolean
'Set up the count as the number of filled rows in the first column of Sheet1.
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
'Cycle through all the cells in that column:
For iRow = 1 To iRowL
'For every cell that is not empty, search through the first column in each worksheet in the
'workbook for a value that matches that cell value.
If Not IsEmpty(Cells(iRow, 1)) Then
For iSheet = ActiveSheet.Index + 1 To Worksheets.Count
bln = False
var = Application.Match(Cells(iRow, 1).Value, Worksheets(iSheet).Columns(1), 0)
'If you find a matching value, indicate success by setting bln to true and exit the loop;
'otherwise, continue searching until you reach the end of the workbook.
If Not IsError(var) Then
bln = True
Exit For
End If
Next iSheet
End If
'If you don't find a matching value, don't bold the value in the original list;
'if you do find a value, bold it.
If bln = False Then
Cells(iRow, 1).Font.Bold = False
Else
Cells(iRow, 1).Font.Bold = True
End If
Next iRow
Application.ScreenUpdating = True
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.