Ricerca per colori

Excel consente di ordinare i dati nei fogli di lavoro da qualsiasi numero di attributi. Una delle cose che si possono non intrinsecamente sorta, tuttavia, è il colore delle celle, almeno non senza l'aggiornamento a Excel 2007 o più tardi. Per alcune applicazioni questo potrebbe essere una caratteristica molto utile. La seguente macro, SortByColor, ordinerà una tabella basata sul colore con cui una cella è formattata.

Sub SortByColor ()
On Error GoTo SortByColor_Err

Dim sRangeAddress As String
Dim sStartCell As String
Dim sEndCell As String
Dim rngSort come gamma
RNG Dim come gamma

Application.ScreenUpdating = False

sStartCell = InputBox ("Inserire l'indirizzo di cella del" & _
"Cella in alto nella gamma da ordinare per colore" & _
Chr (13) & "cioe 'A1'", "Enter cellulare Address")

Se sStartCell> "" Allora
sEndCell = Range (sStartCell) .End (xlDown) .Address
Range (sStartCell) .EntireColumn.Insert
Imposta rngSort = Range (sStartCell, sEndCell)
Per ogni RNG In rngSort
rng.Value = rng.Offset (0, 1) .Interior.ColorIndex
Il Prossimo
Range (sStartCell) .Sort Key1: = Range (sStartCell), _
Order1: = xlAscending, Header: = xlNo, _
Orientamento: = xlTopToBottom
Range (sStartCell) .EntireColumn.Delete
End If

SortByColor_Exit:
Application.ScreenUpdating = True
Set rngSort = Nothing
Exit Sub

SortByColor_Err:
MsgBox Err.Number & ":" & Err.Description, _
vbOKOnly, "SortByColor"
Riprendi SortByColor_Exit
End Sub

Le opere macro di primo che chiede la cella all'inizio dell'intervallo che si desidera ordinare. Questo dovrebbe essere il più in alto cella dell'intervallo. La macro quindi inserisce una colonna (solo temporaneamente) in cui i valori di colore possono essere memorizzati. E poi i passaggi attraverso ogni cella dell'intervallo definito dalla cellula di partenza specificata.

SortByColor assume la tabella dei dati non ha una riga di intestazione. Se è così, è necessario modificare il comando effettivo ordinamento. Basta cambiare Header: = xlNo di intestazione: = xlYes.

Si dovrebbe notare che la macro SortByColor solo ordinare le celle in base al colore esplicita applicata alla cella, esso non ordinare se il colore della cella è il risultato di formattazione condizionale.

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (3122) si applica a Microsoft Excel 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: Ricerca per colori.