Compare duas colunas em duas folhas

0

Eu tenho outra pergunta, embora a última que eu perguntei ainda esteja pendente. Eu tenho um grande volume de dados de mais de 100.000 registros. Eu estou usando o código abaixo para percorrer os dados para que qualquer registro duplicado tenha a cor de plano de fundo transformada em vermelho. O código está funcionando bem, mas atualmente está demorando muito para ser processado (15 a 20 minutos). minha pergunta é, há algo que eu possa fazer para tornar o processo mais rápido?

O código:

Dim wks As Worksheet, wrkb As Worksheet
Dim rng As Range, rngNew As Range
Dim intCount As Integer, intCount1 As Integer
Dim i As Integer, im As Integer

'Sheet1
Set wks = Worksheets("sheet1")
wks.Range("B2").Activate

'sheet2
Set wksb = Worksheets("sheet2")

' Return current data region.

Set rng = wks.Range("B1").CurrentRegion
Set rngNew = wksb.Range("B1").CurrentRegion

intCount = rng.Rows.Count
intCount1 = rngNew.Rows.Count

For i = 2 To intCount
            im = 2
    For im = 2 To intCount1

        If (rng.Cells(im, 2).Value = rngNew.Cells(i, 2).Value) Then

            rng.Cells(i, 2).Interior.ColorIndex = 3

    Exit For
        End If

    Next im
Next 

obrigado por você ajuda

    
por ondo 23.01.2014 / 08:23

2 respostas

1

Em vez de usar o VBA para percorrer os dados, você pode usar a formatação condicional que irá colorir as células em um piscar de olhos.

O VBA não é a melhor solução, apenas porque é código. Algumas funções internas do Excel são muito mais eficientes e mais rápidas do que qualquer código VBA.

Descreva o layout da (s) planilha (s) e a lógica que você deseja aplicar às células com códigos de cores.

Em seguida, uma formatação condicional pode ser sugerida. Não tenho tempo para fazer engenharia reversa do seu VBA em um intervalo de pasta de trabalho.

    
por 23.01.2014 / 08:34
0

Uma coluna auxiliar em uma de suas planilhas deve usar uma fórmula COUNTIF para contar o número de entradas que correspondem a uma condição na outra planilha. Em seguida, adicione um formato condicional, colorindo as células em vermelho se a fórmula retornar > 0.

E o que o @teylyn diz sobre o VBA está certo: deve ser evitado se você puder fazer isso com uma função.

    
por 23.01.2014 / 10:10