Você só pode fazer isso por meio do VBA. Aqui está algum código que você pode colocar no objeto Sheet.
Private lastRange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Not lastRange Is Nothing Then
lastRange.Interior.Color = Range("A1").Interior.Color
End If
Else
Set lastRange = Target
End If
End Sub
O objeto lastRange
é salvo da seleção para a seleção. Essa é a única maneira de o VBA lembrar qual intervalo queremos destacar. Sempre que você alterar a seleção, ela define essa seleção como lastRange
a menos que seja A1
. Nesse caso, ela colore a seleção anterior como qualquer cor A1
.
Com base nos seus comentários, sua necessidade é um pouco mais ampla do que isso. Como você deseja um intervalo de células de várias cores, esse provavelmente é o código que você deseja:
Private lastRange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
If Not lastRange Is Nothing Then
lastRange.Interior.Color = Target.Interior.Color
Exit Sub
End If
End If
End If
Set lastRange = Target
End Sub
Agora há todo um intervalo de células A1:A5
que pode ser de cores diferentes. Se você selecionar uma única célula nesse intervalo, ela definirá a seleção anterior como a mesma cor da célula atual. Você pode ajustar o intervalo A1:A5
para ser o que precisar.
Isso tem uma peculiaridade que eu conheço: Se você selecionar um intervalo, uma forma e, em seguida, A1
, o intervalo selecionado anteriormente ainda será armazenado como lastRange
. Isso provavelmente é OK, mas eu não sei o seu caso de uso.