Como comparar duas linhas no Excel utilizando VBA
Comparação de dados linha por linha manualmente pode ser um processo tedioso, se feito manualmente. Vamos mostrar-lhe como comparar duas linhas no Excel usando VBA e automatizar este processo.
VBA tem uma função incorporada chamada StrComp que pode comparar duas cadeias de caracteres. Esta função retorna um inteiro baseado no resultado da comparação. Zero ” 0 “significa uma correspondência perfeita, e o exemplo de código abaixo destaca a célula se o resultado não for igual a “0”.
a função StrComp recebe 3 argumentos: os primeiros 2 argumentos são as cadeias a serem comparadas e o último é o tipo de comparação (opcional). Se omitido, a opção comparar define o tipo de comparação. Abaixo estão todas as opções disponíveis:
- vbUseCompareOption: efectua uma comparação usando a configuração da opção comparar a instrução.
- vbBinaryCompare: realiza uma comparação binária. Sensível a maiúsculas.
- vbTextCompare: realiza uma comparação textual. Não é sensível a maiúsculas.
- vbDatabaseCompare: Efectua uma comparação baseada em informações na sua base de dados. Microsoft Access only.
o código exige que o utilizador seleccione as linhas numa única gama. O intervalo seleccionado é atribuído a uma variável de intervalos e cada célula desse intervalo é comparada coluna por coluna. Usando uma declaração com, nós não temos que repetir bothrows para cada linha, e para…próximo loop é como nós podemos verificar cada célula.
realce
depois de obter o intervalo, poderá usar a propriedade ColorIndex para definir essa gama como uma cor. Aqui estão alguns números de índice para cores:
- 3: Vermelho
- 5: Azul
- 6: Amarelo
- 0: não preencher
primeiro, é necessário adicionar o módulo ao livro de trabalho ou ao ficheiro add-in. Copiar e colar o código no módulo para executá-lo. A principal vantagem do método do módulo é que ele permite salvar o código no arquivo, para que ele possa ser usado novamente mais tarde. Além disso, as sub-rotinas em módulos podem ser usadas por ícones no menu fitas ou atalhos de teclado. Lembre-se de gravar o seu ficheiro no formato XLSM ou XLAM para gravar o seu código VBA.
Código da amostra para realce
Sub HighlightRowDifferences() Dim bothrows As Range, i As Integer Set bothrows = Selection With bothrows For i = 1 To .Columns.Count If Not StrComp(.Cells(1, i), .Cells(2, i), vbBinaryCompare) = 0 Then Range(.Cells(1, i), .Cells(2, i)).Interior.ColorIndex = 6 End If Next i End WithEnd Sub