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

Deixe uma resposta

O seu endereço de email não será publicado.