Olá, Christopher!
Entendi sua dúvida sobre como comparar intervalos em planilhas que não estão no mesmo intervalo de células, utilizando "Ranges" e "For Each". Vou te dar uma ideia de como você pode fazer isso.
Quando você quer comparar dois intervalos que começam em células diferentes, como B2 em uma planilha e Q2 em outra, você pode definir os "Ranges" de cada um e depois usar um loop "For Each" para iterar sobre as células de cada intervalo. Aqui está um exemplo de como você pode fazer isso:
Sub CompararIntervalos()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Dim celula1 As Range
Dim celula2 As Range
' Definindo as planilhas
Set ws1 = ThisWorkbook.Sheets("Notas 1º Trimestre")
Set ws2 = ThisWorkbook.Sheets("Notas 2º Trimestre")
' Definindo os ranges a serem comparados
Set rng1 = ws1.Range("B2:B100") ' Ajuste o intervalo conforme necessário
Set rng2 = ws2.Range("Q2:Q100") ' Ajuste o intervalo conforme necessário
' Verificando se os ranges têm o mesmo número de células
If rng1.Cells.Count <> rng2.Cells.Count Then
MsgBox "Os intervalos não têm o mesmo número de células."
Exit Sub
End If
' Comparando os valores
For Each celula1 In rng1
Set celula2 = rng2.Cells(celula1.Row - rng1.Row + 1, 1)
If celula1.Value = celula2.Value Then
celula1.Interior.Color = RGB(255, 255, 0) ' Destaca a célula em amarelo
celula1.Font.Color = RGB(255, 0, 0) ' Altera a cor da fonte para vermelho
End If
Next celula1
End Sub
Neste exemplo, estou assumindo que os intervalos têm o mesmo número de células. A lógica é que, para cada célula no primeiro intervalo (rng1
), você encontra a célula correspondente no segundo intervalo (rng2
) e compara os valores. Se forem iguais, você pode destacar as células conforme desejado.
Espero ter ajudado e bons estudos!