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."