Como comparar colunas com vba

Visual Basic for Applications (VBA) é uma linguagem de programação projetada para programas do Microsoft Office, como o PowerPoint, Word e Excel. Ele permite que você para criar ferramentas personalizadas, botões e menus que você pode usar para personalizar seus aplicativos do Office. Por exemplo, não existe uma ferramenta no Excel que permite comparar colunas e destacar as diferenças. No entanto, com algum código VBA, você pode criar uma ferramenta útil para esse fim.

Coisas que você precisa

  • Excel 2007 ou Excel 2010
  • Clique no "Desenvolvedor" guia no Excel, e depois clique "Visual básico."

  • Clique "Inserir." Clique "Módulo" para abrir uma nova janela do módulo.

  • Recorte e cole o seguinte código na janela:

    CompareColumns sub ()

    Dim Column1 Como Gama

    Dim Column2 Como Gama

    "Avisar usuário para o primeiro intervalo da coluna para comparar ...

    `------------------------------------------------- -;

    Definir Column1 = Application.InputBox ("Escolha primeira coluna para Comparar", Type: = 8)

    `Verifique se o intervalo que eles forneceram consiste de apenas 1 coluna ...

    Se Column1.Columns.Count gt; 1 Em seguida,

    Do Until Column1.Columns.Count = 1

    MsgBox "Você pode selecionar apenas 1 coluna"

    Definir Column1 = Application.InputBox ("Escolha primeira coluna para Comparar", Type: = 8)

    laço

    Fim se

    "Avisar usuário para o segundo intervalo de coluna para comparar ...

    `------------------------------------------------- -;

    Definir Column2 = Application.InputBox ("Selecione segunda coluna para Comparar", Type: = 8)

    `Verifique se o intervalo que eles forneceram consiste de apenas 1 coluna ...

    Se Column2.Columns.Count gt; 1 Em seguida,

    Do Until Column2.Columns.Count = 1

    MsgBox "Você pode selecionar apenas 1 coluna"

    Definir Column2 = Application.InputBox ("Selecione segunda coluna para Comparar", Type: = 8)

    laço

    Fim se



    `Verifique ambas as gamas de coluna são do mesmo tamanho ...

    `--------------------------------------------;

    Se Column2.Rows.Count lt; gt; Column1.Rows.Count seguida

     Do Until Column2.Rows.Count = Column1.Rows.Count

    MsgBox "A segunda coluna deve ser do mesmo tamanho que o primeiro"

    Definir Column2 = Application.InputBox ("Selecione segunda coluna para Comparar", Type: = 8)

    laço

    Fim se

    `Se colunas inteiras foram selecionados (por exemplo $ AA), limitar os tamanhos de intervalo para o

    `UsedRange da folha ativa. Isso interrompe a rotina de verificação da folha inteira

    `Desnecessariamente.

    `------------------------------------------------- -----------------------------;

    Se Column1.Rows.Count = 65536 Em seguida,

    Definir Column1 = Range (Column1.Cells (1), Column1.Cells (ActiveSheet.UsedRange.Rows.Count))

    Definir Column2 = Range (Column2.Cells (1), Column2.Cells (ActiveSheet.UsedRange.Rows.Count))

    Fim se

    `Executar a comparação e definir células que são os mesmos para amarelo

    `------------------------------------------------- --------------;

    Dim intCell As Long

    Para intCell = 1 Para Column1.Rows.Count

    Se Column1.Cells (intCell) = Column2.Cells (intCell) Em seguida

    Column1.Cells (intCell) .Interior.Color = vbYellow

    Column2.Cells (intCell) .Interior.Color = vbYellow

    Fim se

    Próximo

    End Sub

  • pressione "F5" para executar a rotina e comparar as colunas.

dicas & avisos

  • O código, como está escrito, vai mudar as diferenças nas colunas para amarelo. Você pode selecionar uma outra cor, substituindo o amarelo nas linhas de seleção de duas cores para outra cor. Por exemplo, se você deseja que o código para destacar em vermelho, a mudança "Column1.Cells (intCell) .Interior.Color = vbYellow" e " Column2.Cells (intCell) .Interior.Color = vbYellow"
  • para
  • "Column1.Cells (intCell) .Interior.Color = vbRed" e "Column2.Cells (intCell) .Interior.Color = vbRed."
De esta maneira? Compartilhar em redes sociais:

LiveInternet