私がコード化されている方法は、「フライト#」カラムのユニークな値が計算され、データがテーブルにフォーマットされていることです。データは、これらの値によって順次フィルタリングされ、行は、(変更可能な)所定のパレットから色付けされる。 ******
Sub FormatDuplicateRows()
Dim wsFlight As Worksheet: Set wsFlight = Worksheets("Flights")
On Error Resume Next
If Not wsFlight.ListObjects("Flights") Is Nothing Then wsFlight.ListObjects("Flights").Unlist
On Error GoTo 0
wsFlight.ListObjects.Add(xlSrcRange, Range("A1").CurrentRegion, , xlYes).Name = "Flights"
Dim tblFlight As ListObject: Set tblFlight = wsFlight.ListObjects("Flights")
Dim Fld As Long: Fld = tblFlight.ListColumns("Flight #").Range.Column
Dim Dict As Object: Set Dict = CreateObject("Scripting.Dictionary")
For Each Cell In tblFlight.ListColumns("Flight #").DataBodyRange
If Not Dict.Exists(Cell.Value) Then Dict.Add Cell.Value, Cell.Address
Next
Dim Colours() As String: Colours = Split("&HD9E9FD,&HF3EEDB,&HECE0E5,&HDDF1EA,&HDCDDF2,&HCCFFFF", ",")
Dim i As Long: i = 0
With tblFlight
.TableStyle = "TableStyleLight1"
.ShowTableStyleRowStripes = False
For Each Value In Dict.Keys
.Range.AutoFilter Field:=Fld, Criteria1:=Value
.DataBodyRange.SpecialCells(xlCellTypeVisible).Interior.Color = Colours(i)
i = IIf(i = UBound(Colours), 0, i + 1)
Next Value
.Range.AutoFilter Field:=Fld
End With
End Sub
あなたはあなたの要件にパレットを変更することができ、パレットは、オートリピートは、一度、すべての色が
********* UPDATE一度使用されています****
は、アレイの色値を取得する私は、次の関数
Public Function GetColour(rngSrc As Range) As String
GetColour = "&H" & Application.WorksheetFunction.Dec2Hex(rngSrc.Interior.Color)
End Function
を符号化されたExcelワークブックに、私は「A2」に式= GetColour(「A1」)を配置しました塗りつぶしの色を変更しました。行1に沿ったいくつかのセルをドラッグして式をドラッグドロップして、必要な塗りつぶし色の16進値を得ました。
[色のコードは、交互の色を使用してExcelのフィールドに重複して表示されます](http://stackoverflow.com/questions/35437981/colour-code-duplicate-a-field-of-an-excel-alternating-colors/35448517#35448517)を使用してください。 – Jeeped